并查集
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
JZOJ 3648【GDOI2014】beyond
给出两个长度为n的字符串a,b,求最大的L,使得a[1..L]和b[1..L]是循环同构的(展开后是一个同一个环)。1 <= n <= 2000000原创 2017-06-02 19:26:44 · 614 阅读 · 0 评论 -
Kruskal重构树学习小记
辣鸡NOI!这个树的作用是针对那些用并查集的,没有修改的,只有强制在线询问历史版本答案的题目。裸题:NOI2018 D1 T1把所有边按照海拔排序,加入并查集。要合并两个并查集时,建一个虚点,这两个并查集的顶点和虚点联系起来,这里用按秩合并。最后对于每一个并查集,找到最后加入的虚点,以它为根,遍历建树。这个树有一个性质,就是x子树内的边一定在x到father这条边之前加入,...原创 2018-07-18 20:04:10 · 501 阅读 · 0 评论 -
SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* G题 危险路径
题目链接.弱鸡选手表示只会做这种水题了。首先mst。之后问题转化为在一棵树上,求每个点到其它点的路径的最大值的和。当然可以点剖什么的,也可以换根+线段树合并什么的,常数有点小炸。我的想法是用启发式并查集。mst要合并两个并查集时,设它们的根为x,ysiz[x] > siz[y], 将把y的父亲设为x。显然未合并前的x的整个子树答案+z(当前边权)*siz[y],而y的子树答案+z*siz[x]。处理原创 2018-04-16 19:30:39 · 454 阅读 · 0 评论 -
线段树合并——bzoj 2733 [HNOI2012]永无乡
真正的线段树合并的裸题。题目大意:原题链接.每个点的有个类似分数的东西,互不相同。每次可以加一条双向边(x,y)。询问x点所在联通块第k的点。讲一讲牛逼的启发式合并。开线段树,每次做并查集合并的时候找到点数少的那一个,一个一个把点提出来,加到大的线段树里。时间复杂度O(n log^2 n)。线段树合并就不讲了,前一篇博客有讲,10^5跑了2s,常数爆炸。...原创 2018-03-23 19:41:56 · 297 阅读 · 0 评论 -
口胡 2018.03.10【GDOI2018】模拟A组
那天我去了象征自由的组别,没有做这个组,但是这个组的题目还是很有意思的。看了之后有很大启发,所以写一下。T1【NOI2015模拟12.27】str:Description:第一问一看是个回文自动机的裸题。但是你发现第二问用回文自动机有点难搞。转换后相当于把一棵trie反过来求第k大。因为后缀自动机的fail边是原串反向前缀树。于是可得广义后缀自动机得fa...原创 2018-03-16 12:24:49 · 386 阅读 · 0 评论 -
51nod 1515 明辨是非 && 2017百度之星初赛第一场第二题(并查集+启发式合并)
题目:原题链接 给n组操作,每组操作形式为x y p。 当p为1时,如果第x变量和第y个变量可以相等,则输出YES,并限制他们相等;否则输出NO,并忽略此次操作。 当p为0时,如果第x变量和第y个变量可以不相等,则输出YES,并限制他们不相等 ;否则输出NO,并忽略此次操作。 n<=1*10^5题解:暑假打百度之星时还傻傻地以为这题就是奇偶游戏(奇偶游戏中变量的值只能是0,1)。等于有传递性原创 2017-09-21 12:12:37 · 498 阅读 · 0 评论 -
【GDOI2018模拟9.23】动态图
Description: 1<=n<=10^6,1<=q<=200000题解:暴力可以用按秩合并并查集,这个数据结构支持删除。对于正解,我们需要把l->r条边一次加进并查集,对于每一条边,它有贡献,就是加入它的时候,它会合并两个不同的集合。 反过来,它没有贡献,就是它所连着的两端本来就在一个集合里。假设我们按1->r的顺序加入每一条边,当加入一条边时,设它是x,y,设z为x到y的路径上编号最小的原创 2017-09-26 12:07:33 · 605 阅读 · 0 评论 -
【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
Description: 1<=n<=200000,1<=m<=400000题解:区间先转成前缀和数组上乱搞。看到xor我们可能会想到拆位,但是这道题拆位再路径压缩只能拿到20-50分。由于xor操作的特殊性,我们可以把限制看作两个点之间的一条边,边权是k,这样会形成一个森林,两个在同一树上的点的限制就是它们路径上的边权的xor和。这么样的话新加一个限制(x,y,k),就判断x,y是否在一棵树上,原创 2017-09-22 19:02:33 · 330 阅读 · 0 评论 -
【NOIP2017提高A组模拟8.25】影子
Description: 1<=n<=10^5题解:首先对于这种树上路径问题是很容易想到点分治的,细节比较复杂,也许需要一个set,常数爆炸。 比较联赛的做法是并查集。 先将点按权值从大到小排序。 依次枚举每个点,将它和与它相邻且权值大于它的点合并成一棵树。 每次合并,新树的直径的端点一定是原来两棵树中的两条直径的四个端点中的两个,这个易证。 直径上的最小值不一定是当前的点,但是这没有关原创 2017-08-25 16:10:12 · 497 阅读 · 0 评论 -
【清华集训2017模拟】ces
Description: 1<=n<=1e5,1<=q<=m<=2e5题解:首先把用tajan把桥边全部找出来,桥边会把图分成若干个双联通分量。 把每个双联通分量并成一个点,桥边作为边,这会构成一棵树。显然,对于每个询问加k条边最多能去掉多少条桥边,就是用k条简单路径去覆盖这棵树,最多能覆盖多少条边。有一个很优的贪心,把k按1-q做,每次找到树的直径,答案加上直径的长度,把直径压成一个点,继续做原创 2017-08-18 21:51:11 · 610 阅读 · 0 评论 -
【GDOI2015模拟12.21】鸡腿の乒乓
Description:乒乓游戏可不是乒乓!乒乓好像也和这个游戏没啥关系。这个游戏的主角就是——区间。对于两个区间,如果(a,b)和(c,d)区间满足c<a<dc<a<dcc<b<dc<b<dc...原创 2018-07-12 19:49:25 · 342 阅读 · 0 评论