并查集训练
文章平均质量分 91
qte_acm
这个作者很懒,什么都没留下…
展开
-
poj 1611 并查集训练
题意: 有n个学生 , 学校中有m个社团 , 如果一个社团中的某个人是嫌疑人 , 那么这个社团中的所有人都是嫌疑人 , 题目给定学生0 是嫌疑人 , 求总共有多少嫌疑人?这是一个比较简单的并查集 , 通过判断其他学生的根节点和0这个学生的根节点是不是一样 。但这个题目优化 , 和没有优化的时间消耗差别很大 , 下面是两种不同优化的代码和时间复杂度代码一:只有了路径压缩优化1611原创 2013-12-14 20:04:46 · 656 阅读 · 0 评论 -
poj 1182 并查集经典题…
这是并查集非常经典的题目——带权并查集 。下面就通过分析这个题目 , 来讲讲带权并查集:这题中 , 对于动物之间有三种关系 , 同类、吃、被吃 , 我这么来存储这些不同的状态0 : a 、b是同类1 : a 吃 b2 : a 被 b吃那么对于两个动物之间的关系 , 我们只需要判断他们之间的值就行 , 但是如果只用这种方法 , 必然会TEL我们这么来考虑这个题目:假如我们知道原创 2013-12-14 20:04:48 · 746 阅读 · 0 评论 -
并查集及其路径的压缩
并查集是非常简单并且非常实用的一种高级数据结构,在很多查找程序中都是用的并查集。其实可以这样来理解并查集 , 把并查集看成是有很多棵树组成的 , 也就是森林 , 只不过是用数组而不是链表来实现的 。下面是最近的简单的并查集:find ( int x){ while( x != p[x]) x = p[x] ; return x;}这原创 2013-12-14 20:02:36 · 1165 阅读 · 0 评论 -
poj 1703 并查集的拓展
并查集的拓展: 并查集最开始的使用 ,是用于判断一个图是否是连通图 , 由于并查集查询特点的特点(查询复杂度为O(1))所以用得很广。 并查集的变形一般是和向量偏移(类别偏移)一起结合 。下面就通过这个题目来讨论向量偏移:在并查集中 , 如果两个点时属于同一个集合 , 那么这两个点肯定就有一定的关系 , 所以我们认为只要a、b之间有关系 ,那么我们就让a、b的根节点原创 2013-12-14 20:04:43 · 606 阅读 · 0 评论 -
poj 1733 并查集+偏移向…
题意: 题目给出一个有0、1组成的序列 , 长度为n 。 下面有m个条件 , 每个条件是:给出一个x到y的连续序列 ,和这个序列中有偶数个1还是奇数个1 , 因为给出的条件可能有矛盾 , 所以要求出前多少个条件是没矛盾的。这题有点意思 , 对于并查集的题目 , 首先要找到根节点 , 就是怎么来确定根节点 。我们用:0 : 表示偶数个11 : 表示奇数个1我们用f[x-1] 表示0原创 2013-12-14 20:04:51 · 627 阅读 · 0 评论