![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
泽7
这个作者很懒,什么都没留下…
展开
-
[JSOI2008]星球大战
题目传送门sx 用并查集来做; 因为并查集只能连边,而不能删,所以倒过来做; 先记下每条边两边的点,正反向连边; 把该摧毁的星球摧毁,剩下n-k个独立点(互不连通),然后一个一个往上连边合并; 如果边的两端点星球都没有被摧毁,就合并祖先,每合并一个,连通块数减一; 然后从k到1进行合并,每合并一个就减一, #include <iostream> #include <cstdio&...原创 2019-05-10 15:32:48 · 316 阅读 · 1 评论 -
bzoj疯狂的馒头
题目传送门sx 最后染色的馒头一定不会再被更改,所以倒着来染色; 用并查集来维护染了的区间,直接跳到祖先 因为染色是连续的点,把染了色的点的祖先设成右端点; 在区间内逐个染色,如果该点被染色,就把指针直接跳到该点的祖先; 如果跳到的祖先超出了r,别忘了跳出循环 注意左端点小于等右端点 #include <iostream> #include <cstdio> using n...原创 2019-05-10 15:40:10 · 140 阅读 · 0 评论 -
修复道路
题目传送门sx 从小到大排序 并查集来连接连通块,每连接一个总量减一,直到减为一,输出 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int N=100010; int n,m,s,fa[N]; struct st{ int x,y,t...原创 2019-05-10 17:00:33 · 164 阅读 · 0 评论