![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
子相詹
这个作者很懒,什么都没留下…
展开
-
拓展域并查集
拓展域并查集 拓展域并查集。就是通过“拓展域”的方式,将一个点的多个情况拆解成多个仅有单一状态的点,从而将问题转化为可用并查集维护的形式。 例题:P5937 [CEOI1999]Parity Game 将条件通过前缀和(设为sum[x])转化为以下形式: [l,r]之间1的个数为奇数/偶数 --> sum[l-1]与sum[r]的奇偶性不同/相同 这样做转化后,这个问题就转化为“团伙问题”模型。但是由于要介绍拓展域并查集,故暂且将“设立敌人集合”的做法放置,讲解拓展域并查集 将"sum[x]为奇数或偶原创 2021-10-25 23:34:30 · 433 阅读 · 0 评论 -
边带权并查集
边带权并查集 简单来说,”边带权“并查集就是在原始并查集的基础上增加“维护每个点到根节点之间的信息”这一功能。并查集的特点就是可以很方便地维护这种带有传递性的信息,而并查集实际上就是由若干棵树构成的集合。当遇到仅与每个点到根节点的信息相关的问题时,边带权并查集是一个不错的思路。 模板题:P1196 [NOI2002] 银河英雄传说 下面代码以该题为例 路径压缩: il int getfa(int x) {//边带权并查集的路径压缩 if(fa[x]==x) return x;//找到父节点之后返回原创 2021-10-25 21:49:24 · 359 阅读 · 0 评论