并查集
# 并查集
快乐撸代码
一个今天胜过两个明天
展开
-
带权并查集 HDU - 3047
题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的。 思路: 带权并查集模板。 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> #include<queue>...原创 2019-12-10 11:37:30 · 121 阅读 · 0 评论 -
UVA11987 Almost Union-Find 并查集的节点删除
题意: 第一行给出一个n,m,表示 n个集合,里面的元素为1~n,下面有m种操作,第一个数为 1 时,输入a,b表示a,b两个集合合并到一起,第一个数为 2 时,输入a,b表示将 a 从他原来的集合中拿出来,放到集合 b 中,第一个数为 3 时,输入a,表示询问a 所在的集合的元素的个数和元素的和。 思路: 求集合所有元素的个数和元素和的时候,在两个数并为一块的时候求比较容易理解,假如a...原创 2019-08-17 09:13:39 · 134 阅读 · 0 评论 -
poj——1182食物链 并查集(提升版)
因为是中文题,题意就不说了,直接说思路: 我们不知道给的说法中的动物属于A B C哪一类,所以我们可以用不同区间的数字表示这几类动物,这并不影响结果,我们可以用并查集把属于一类的动物放在一块,举个例子: A 2*n ~ 3*n-1 B n ~ 2*n-1 C 0 ~ n-1 假设 n =10,1和3是同类,那么1和3并到一块,11和13并到一块,21和23并到一块。那么这...原创 2019-08-17 08:39:30 · 112 阅读 · 0 评论