
并查集
Mr.Gzj
这个作者很懒,什么都没留下…
展开
-
P2024 [NOI2001]食物链(并查集)
题目描述动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B吃 C,C 吃 A。现有 N 个动物,以 1 - N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是“1 X Y”,表示 X 和 Y 是同类。第二种说法是“2 X Y”,表示 X 吃...原创 2018-12-03 21:56:52 · 183 阅读 · 0 评论 -
Gym - 101915J I - The Volcano Eruption
题意: 有一个长度为L,宽度为W的长方形区间。一共有n个圆,这n个圆可能两两相交,当你进入圆的区域的时候,你需要换一次衣服;而当你走出圆的领域的时候,你也需要换一次衣服。现在问你,在不能走出长方形区间的前提下,你最少需要换多少次衣服。思路:可以将相接的圆看成一个连通块,然后遍历连通块的边界看看超没超出。一开始初始化并查集从1开始,一直wa,疯了#include <bits...原创 2019-04-24 10:08:40 · 257 阅读 · 0 评论 -
Welcome Party(并查集判连通块,BFS+优先队列输出字典序)
题意:给出n个人,他们有的人是朋友关系,现在他们要去吃饭,若某个人进入餐厅看不见朋友,则它伤心,要求求出一个序列,使这样进去,使伤心人数最少,若有多个,则按字典序输出。思路:并查集判连通块,然后bfs+优先队列输出字典序。#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 5;int t, n, ...原创 2019-04-28 12:00:41 · 263 阅读 · 0 评论 -
Educational Codeforces Round 64 (Rated for Div. 2) D. 0-1-Tree
思路:经过的路径可以分为三类,只有0,只有1,先0后1,可以用并查集将相邻同数边合并,如果从x到y的路径包含两种类型的边,则存在一个顶点v,这样从x到v的路径只经过0边,而从v到y的路径只经过1边。那么,让我们迭代这个顶点v,在图选择一个顶点作为x,选择另一个顶点作为y,并将选择它们的方法的数量加在答案中。#include<bits/stdc++.h>using namespa...原创 2019-05-03 16:15:50 · 307 阅读 · 0 评论 -
Codeforces Round #552 (Div. 3) E. Two Teams
题意:给出一个n和k,下面是n个数,要求找出最大的数,将它和周围k个数染色,第一次找到的染为1,第二次是2,第三次是1,类推。思路:链表来解这个题思路很简单,不过不好写,好久没写过了。于是用并查集来解,感觉这种类型的题目并查集 都可以解。#include<bits/stdc++.h>using namespace std;const int N = 2e5 + 10;t...原创 2019-04-18 11:16:57 · 272 阅读 · 0 评论 -
GYM101401 2017 PSUT Coding Marathon G. Balloons (B)
思路:第一眼看是线段树,于是搞了一发,t在61,不过还能优化,方法想到了,代码实现不会,还是菜。看学长并查集180ms搞过,遂学之。具体方法是将访问过的放到一个并查集里,祖先一直指向没访问过的那个元素。#include<bits/stdc++.h>using namespace std;const int N = 2e5 + 7;#define R 0#defin...原创 2019-04-07 13:12:17 · 469 阅读 · 0 评论 -
Codeforces Round #548 (Div. 2) C. Edgy Trees(并查集+快速幂)
思路用并查集统计一个连通块的节点个数,最后用总的减去他,设x是连通块的节点个数,o个联通块#include<bits/stdc++.h>#define fi first#define se second#define INF 0x3f3f3f3f#define ll long long#define ld long double#define mem(ar,num...原创 2019-03-22 14:55:44 · 620 阅读 · 4 评论 -
P1196 [NOI2002]银河英雄传说
题目描述公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展。宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争。泰山压顶集团派宇宙舰队司令莱因哈特率领十万余艘战舰出征,气吞山河集团点名将杨威利组织麾下三万艘战舰迎敌。杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多,难免恣生骄气。在这次决战中,他将巴米利恩星域战...原创 2019-11-08 21:29:07 · 346 阅读 · 1 评论 -
P1197 [JSOI2008]星球大战(并查集+逆向)
题目描述很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。...原创 2018-12-06 20:24:38 · 206 阅读 · 0 评论 -
P1525 关押罪犯
题目描述SS城现有两座监狱,一共关押着NN名罪犯,编号分别为1-N1−N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为cc 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为cc的冲突事件。每年年末,警察局会将本年...原创 2018-12-13 18:23:35 · 225 阅读 · 0 评论 -
超有爱的并查集~(详解)
例子就是杭电上的畅通工程:http://acm.hdu.edu.cn/showproblem.php?pid=1232首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质...转载 2018-12-02 21:45:50 · 349 阅读 · 0 评论 -
牛客第9场 All men are brothers(并查集)
题意:给出n个人,m个操作,每次操作可以把两个人和为朋友,朋友关系是相互的和传递的,问每次操作后,从这些人里挑出4个毫无关系的人的挑法有多少种。思路:考虑每次合并减少了多少,减少的数目就是合并的两个集合的大小相乘再乘以剩下的不在一个集合的人中挑出两个人的数目。从不在一个集合里挑出两个人的挑法可以用任选两个的方案数减去在同一个集合挑两个人的挑法。这道题当时想出了解法,但好久没写过并查集,忘了...原创 2019-08-16 13:57:48 · 230 阅读 · 0 评论