本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是算法与数据结构的第18篇文章,我们一起来看一个经典的数据结构——并查集。 首先我们来解释一下这个数据结构的名称,并查集其实是一个缩写,并指的是合并,查指的是查找,集自然就是集合。所以并查集的全称是合并查找集合,那么顾名思义,这是一 ...
分类:
其他好文 时间:
2020-04-30 21:35:23
阅读次数:
70
(题目参考: "BF数据结构题单" ) 普通并查集 代码实现 普通并查集支持 $2$ 种操作 —— 查询自己在哪个连通块和合并两个联通块(即连边) 操作 1:查询 对于我们一个点,查询的连通块记为 $id_u$,一个连通块的编号为这个连通块中被所有人指向的那个节点。 对于一次查询,我们向上找自己指向 ...
分类:
其他好文 时间:
2020-04-28 17:25:46
阅读次数:
53
Navigation Nightmare 题目链接:virtual judge poj Farmer John's pastoral neighborhood has N farms (2 <= N <= 40,000), usually numbered/labeled 1..N. A serie ...
分类:
Web程序 时间:
2020-04-28 16:51:33
阅读次数:
64
How Many Answers Are Wrong 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 题目大意: 在一个长度为n的区间上,给出m个区间和,当遇到给出的这个区间与前面的区间有矛盾时,认为新给出的区间是错误的,不更新区间,问有多少错 ...
分类:
其他好文 时间:
2020-04-25 14:16:50
阅读次数:
55
"CodeForces 1209D " 题意 现在n种点心,每种点心只有一份,有k位客人,每位客人有两种想要吃的点心,你可以安排他们进场的顺序,每位客人会吃掉所有他想要吃的,并且还没被吃掉的点心。如果客人一个也没吃到,他就会不开心,问最少的不开心的人是多少? 思路 刚开始以为只会吃掉一个,直接按照第 ...
分类:
其他好文 时间:
2020-04-25 12:32:20
阅读次数:
63
并查集模版(Java) 初始化,找集合老大,合并集合 public class UnionFind { public int[] parent; public int n,m,sum; //开始时每个集合只有自己,所以集合老大也是自己 public void Init() { for(int i = ...
分类:
编程语言 时间:
2020-04-25 01:15:27
阅读次数:
81
链接:https://codeforces.com/contest/1263/problem/D 题意:给你n个字符串,如果其中两个字符串的某个元素相同,则被视为相同,问最后知道几个字符串就可以知道所有的字符串; 假设a字符串和c字符串等价,b和c字符串等价,那么a和b也等价。 并查集裸题; cou ...
分类:
其他好文 时间:
2020-04-23 18:48:36
阅读次数:
69
"Link" 如果两个区间相交,那么这两个区间之间有双向边。 如果一个区间包含另一个区间,那么被包含的区间向大区间有一条单向边。 考虑用并查集把所有以双向变连边的区间合并成一个大区间,这可以用线段树实现。 可以证明从一个区间到另一个区间的路径最多经过一条单项边,直接对两个区间所属的大区间进行判断即可 ...
分类:
其他好文 时间:
2020-04-22 19:45:30
阅读次数:
61
链接:http://poj.org/problem?id=2236 并查集水题,+距离约束 题意: 东南亚发生地震。 亚洲合作医疗队(ACM)已与膝上计算机建立了无线网络,但由于意外的余震袭击,网络中的所有计算机都被破坏了。 电脑被一一修复,网络逐渐恢复工作。 由于硬件限制,每台计算机只能直接与不超 ...
分类:
Web程序 时间:
2020-04-22 16:16:58
阅读次数:
78
问题提出:n个人,组成多个团体,给出关系链,多个查询,其中两人是否为同一团体 解决方法: 1. 构建一个无向图,同一个团体加同样的标记,合并时复杂度很高,查询为O(1) 2. 并查集,树形结构的数组(不相交集合的合并,查询等问题):建立集合,查询元素所在集合,合并集合... 初始化:f(i) = i ...
分类:
其他好文 时间:
2020-04-22 13:27:37
阅读次数:
66