并查集
FuTaimeng
好像有人说我冰雪聪明~~~
展开
-
BZOJ2959: 长跑
BZOJ2959: 长跑LinkCutTree·并查集题解:如果没有环就是LCT裸题了,维护子树和即可。有环的时候,不管环长得什么样(单环也好,多个环有交点、有公用边也好),只要依次为环上的边定向,一定可以做到从任意一个点开始,遍历环上所有的点,在任意一个点停下来(当然了,可能会走重复的路径)。也就是说,环跟一个点没有区别。那么就可以缩点,用并查集维护,剩下的部分LCT。LCT合并的时候直接选出一个原创 2017-08-26 10:22:14 · 340 阅读 · 0 评论 -
BZOJ4423: [AMPPZ2013]Bytehattan
BZOJ4423: [AMPPZ2013]Bytehattan对偶图·并查集题解: http://www.cnblogs.com/lcf-2000/p/6217985.html 删除一条边可以看做把两个空块连通。当删除一条边时这条边紧邻的两个空块已经连通了,那么删除这条边会导致这条边的两个顶点不连通。 仔细想想觉得非常有道理。当删除一条边时发现这条边紧邻的两个空块已经连通了,那么删除这条边原创 2017-09-06 09:45:02 · 238 阅读 · 0 评论 -
BZOJ4569: [Scoi2016]萌萌哒
BZOJ4569: [Scoi2016]萌萌哒并查集·倍增题解:并查集中点id[i][j]id[i][j]表示从i开始2j2^j长度的这一块区间。 合并的时候区间拆成不超过log个2的整数次幂长度的区间,把他们对应的点合并。 最后自顶向下合并,即如果id[i][j]]id[i][j]]和id[a][b]id[a][b]在一个并查集里,则合并id[i][j−1]、id[a][b−1]id[i][j原创 2017-08-24 16:06:52 · 202 阅读 · 0 评论 -
花花的森林forest
花花的森林forest维护树的直径·并查集题目大意:花花有一棵带 n 个顶点的树 T,每个节点有一个点权ai a_i 。 有一天,他认为拥有两棵树更好一些。所以,他从 T 中删去了一条边。 第二天,他认为三棵树或许又更好一些。因此,他又从他拥有的某一棵树中去除了一条边。 如此往复。每一天,花花都会删去一条尚未被删去的边,直到他得到了一个包含了 n 棵只有一个点的树的森林。 定义一条简单路径1原创 2017-10-20 16:43:36 · 521 阅读 · 0 评论 -
密码游戏 - bzoj十连测 Test7 T2
密码游戏 - bzoj十连测 Test7 T2并查集的神奇应用题解:一开始我和hzw都认为a可以随便取。。。————————zz分割线————————b[(a[(x[i]+a0)%m]+b0)%m]=y[i]b[(a[(x[i]+a_0)\%m]+b_0)\%m]=y[i]方便看把%m省去:b[a[x[i]+a0]+b0]=y[i]b[a[x[i]+a_0]+b_0]=y[i]a0=i%m,b0=i原创 2017-10-13 16:43:20 · 363 阅读 · 0 评论