摘要: 这几乎就是莫队板子。 是否互不相同等价于判断 now==q[i].r-q[i].l+1 。 看代码: #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; int n,m,a[maxn],cnt[maxn],ans[m 阅读全文
posted @ 2020-03-11 22:09 syzf2222 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 如果要学习莫队算法请另寻别处。 但是这里可以为您提供高质量的练习题配代码。 代码如下: #include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; struct node{ int l,r,bl,br,id; }q[maxn 阅读全文
posted @ 2020-03-11 22:07 syzf2222 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 这题需要把状转方程想清楚,在动手打代码。 可能大多数人像我一样第一反应是这样的: f[x][0]=0,f[x][1]=1; for(int i=beg[x];i;i=nex[i]) if(to[i]!=fa){ dfs(to[i],x); f[x][0]+=f[to[i]][1]; f[x][1]+ 阅读全文
posted @ 2020-03-11 12:34 syzf2222 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 我觉得我好像已经理解树形背包了。 套路化的树形背包。 递推公式长这样:f[i][j]=max(f[i][j],f[i][j-k]+f[t][k]); 注意f[i][0]应该在最后附为0,不然就相当于是取前m大了。 看代码: #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2020-03-11 11:49 syzf2222 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 这是蒟蒻的第一道树形背包,由于不知道套路,几乎全抄的题解(惭愧)。 有点类似于CDQ分治的思想,先处理下级,然后利用下级的数据推本级。 其实我还没有理解透彻,不过贡献一下代码也是有价值的。 #include<bits/stdc++.h> using namespace std; #define in 阅读全文
posted @ 2020-03-10 22:17 syzf2222 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 这是一个树形dp入门题。 f[x][i]=max{f[lc[x]][i-1]+lw[x],f[rc[x]][i-1]+rw[x],lw[x]+rw[x]+f[lc[x]][j]+f[rc[x]][i-2-j]} 注意边界情况。 if(i==0)f[x][i]=0; if(!lc[x])f[x][i] 阅读全文
posted @ 2020-03-10 22:11 syzf2222 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 毒瘤的状压DP题。 思路非常的好想,就是枚举每一种情况,考虑他对这一行和上一行的影响,从而设状态。 我们可以通过一定的数学公式来看看到底有多少种情况。 每个点可以填竖边或者填横边或不填。 f[0]=1,f[1]=2; f[i]=2*f[i-1]+f[i-2] 算出来f[11]有一万多,要超时了,怎么 阅读全文
posted @ 2020-03-10 14:25 syzf2222 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 跟拍照几乎是重题。 在输出部分,若最后一次bfs还能到这个点,则可以输出。 只要有一个点可以从源点过得去,就可以通过正或反流到达所有经过的点。 但是我不明白若把所有项目都割掉了,那不就嘎嘎了。 这里也求广大读者说出自己的理解。 看代码: #include<bits/stdc++.h> using n 阅读全文
posted @ 2020-03-09 21:38 syzf2222 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 几乎是个板子,跟游戏几乎是重题。 将每行建点,每列建点,这样可以保证每行每列都只有一个。 格点拆掉,算个费用流就好了。 看代码: #include<bits/stdc++.h> using namespace std; #define inf 1e9 const int maxn=100005; i 阅读全文
posted @ 2020-03-07 21:06 syzf2222 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 横的联通快为入,竖的为出。 样例的图就像这样: S->a1,a2,a3,a4,a5 a1->2,3,4 a2->5 a3->7,8 a4->9,10 a5->12 5,9->b1 2->b2 10->b3 3,7->b4 4,8,12->b5 代码如下: #include<bits/stdc++.h 阅读全文
posted @ 2020-03-06 22:41 syzf2222 阅读(106) 评论(0) 推荐(0) 编辑