并查集
zzti_xiaowei
xxx
展开
-
幼儿园的战争
题目描述幼儿园的孩子们正在做游戏,每个人都有自己的帮派,帮派之间打架,然后赢者吞并弱者扩大自己的势力。最开始每个孩子的帮派中只有自己,然后接下来有会有两个人打架,这两个人会集结自己所属的势力开始打架,打赢的一方就会吞并输的一方,当然如果x,y是一个势力就不会打起来。有些聪明的小朋友会将自己的糖分给其他小朋友引诱他离开所属势力加入到自己势力。又有一些小朋友会对现在的势力不满,然后反叛出去自立门户。作...原创 2017-12-19 16:47:08 · 432 阅读 · 0 评论 -
Hdu-3038 How Many Answers Are Wrong
[题目链接] 题解: 没看出来要用并查集做,很不错的一道题~ 区间[Ai,Bi]可以理解为前缀和相减sum(Bi)-sum(Ai-1),用每个顶点记录前缀和。如一条数据Ai Bi Ci,如果Ai,Bi不在同一个集合,则合并Ai,Bi所在集合并更新关系rel。关系rel[a]记录的是顶点a到根节点x的区间和。 代码: #include<iostream> #include&l...原创 2018-04-14 13:50:27 · 250 阅读 · 0 评论 -
Poj-2236 Wireless Network
[题目链接] 题意: 现在有n台损坏的电脑,目前可以一个一个地进行维修。由于硬件的限制,修好了的电脑想要直接相连,那么它们之间的距离必须≤dist。但是如果A与C连接,C与B又连接,那么A与B就间接连接。在修电脑的过程中,工作者随时可以进行两种操作,修电脑或者是测试两台电脑是否已经连接。你的任务是对于每一次测试,如果成功连接,输出SUCCESS,否则输出FAIL。 思路: 还不错的并查集题,先...原创 2018-04-10 14:42:10 · 142 阅读 · 0 评论 -
Poj-1611 The Suspects
[题目描述] 题意: 有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了非典,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社团,他所在的社团照样全部感染,求感染的人数。 感想:一道简单的并查集,活活了好些天,还是~,看着讨论区大佬们的各种1A,崩溃ing~ 这题就不写题解了,哭哭~ 代码: #include<iostream> #include...原创 2018-04-11 11:53:34 · 174 阅读 · 0 评论 -
Hdu-1213 How Many Tables
[题目链接] 思路::中规中矩的并查集模板题,没有丝毫变形哦~ 代码:: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int Max_n=1e3+10; int t,n,m; int...原创 2018-04-11 12:51:37 · 133 阅读 · 0 评论 -
Poj-1182 食物链
[题目链接] 感悟:很经典的一道并查集题,做两遍了,收获满满的~~(强烈建议只看一点点思路) 思路:对每个节点维护其到根节点的偏移量(偏移量代表种类关系)。 par[x]表示x的根节点,rel[x]表示x与根节点的偏移量。 rel[x]=0表示x与根节点为同类,1表示根节点吃x,2代表x吃根节点。 同类/不同类时,如何判断关系是否矛盾以及如何合并两顶点所在的集合(真的值得自己想好几...原创 2018-04-11 21:19:38 · 346 阅读 · 0 评论 -
Poj-1703 Find them, Catch them
[题目链接] 相同思路进阶题目:食物链 解法1: 对每个顶点x,用x表示属于A帮派,x+n表示属于B帮派(数组大小2*n)。 当x和y属于不同帮派时,则x+n和y属于同一个帮派,x和y+n属于同一个帮派。 三种情况: 1. 当x和y在同一集合时(即x和y所在集合根节点相同),则x和y在同一帮派。 2. 当x和y+n或x+n和y在同一集合时,则x和y不在同一帮派。 3. 其他情况(...原创 2018-04-12 17:33:23 · 352 阅读 · 0 评论