![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
Devil Zoey
这个作者很懒,什么都没留下…
展开
-
P1955 [NOI2015]程序自动分析
P1955 [NOI2015]程序自动分析题意略(中文)思路并查集加离散化就OK了代码#include<bits/stdc++.h>using namespace std;const int maxn=1e6+10;int fa[maxn];struct node{ int a,b,op; bool operator <(const n...原创 2019-10-02 19:36:58 · 209 阅读 · 0 评论 -
P1197 [JSOI2008]星球大战
P1197 [JSOI2008]星球大战题意略(中文)思路一道思维并查集题,正着摧毁貌似不是很行,那就倒着修建,预处理按修建的顺序排序然后用并查集记录连通块个数就行了.代码#include<bits/stdc++.h>using namespace std;const int maxn=4e5+10;struct node{ int x,y,id; ...原创 2019-10-02 19:43:07 · 89 阅读 · 0 评论 -
P2024 [NOI2001]食物链
P2024 [NOI2001]食物链题意略(中文)思路一道典型的扩展域并查集,我们开三倍数组,(1,n)记录同类域,(n+1,2n)记录捕食域,(2n+1,3*n)记录天敌域,分析各个域的关系,当x,y为同类时x的捕食域肯定不能是y,y的捕食域肯定不能是x,当x,y为捕食关系时(x吃y),此时x和y不能在同类域中,y的捕食域不能是x.代码#include<bits/std...原创 2019-10-02 19:52:58 · 146 阅读 · 0 评论 -
P1196 [NOI2002]银河英雄传说
P1196 [NOI2002]银河英雄传说题意略(中文)思路边带权并查集,用front[i]记录i到根节点之间有多少艘战舰,num[i]表示第i列有多少艘战舰.代码#include<bits/stdc++.h>using namespace std;const int maxn=3e4+10;int num[maxn],front[maxn],fa[maxn]...原创 2019-10-02 19:57:47 · 126 阅读 · 0 评论 -
P1525 关押罪犯
P1525 关押罪犯题意略(中文)思路扩展域并查集(当然二分图也可以做),开二倍数组,(1,n)记录关在同一个监狱里,(n+1,2*n)记录与自己不同监狱的,因为还有怨气值,所以怨气值要从大到小排序,保证怨气值大的不在一块,这样就能使怨气值最大的最小,然后依次判断就行了.代码#include<bits/stdc++.h>using namespace std;c...原创 2019-10-02 20:17:36 · 123 阅读 · 0 评论 -
POJ1733Parity game
POJ1733Parity game题意区间长度为n,给定m个关系,然后三个输入l,r,s(字符) ,如果s="even"表示(l,r) 有偶数个1,如果s="odd"表示(l,r) 有奇数个1,求k使得1-k个条件都能满足要求,而k+1个条件不能满足.思路边带权并查集,记录与父亲节点之间有偶数个1还是奇数个1,当权值为1时时偶数个1,当权值为0时为偶数个1.代码#includ...原创 2019-10-02 20:27:14 · 113 阅读 · 0 评论 -
POJ2912(种类并查集)
POJ2912题意n个人玩石头剪刀布的游戏,其中有一个人是裁判,要求将这些人分成三组,这三组可以为空,然后如果裁判为1个输出裁判为第几个人,在多少行就判断出来,如果裁判可能有多个,就输出"Can not determine",没有就输出"Impossible".思路种类并查集(雾),我之前都做的是扩展域并查集,然而我是看完题解才懂的,并查集貌似是满足以下图片的关系,图片参考的博客...原创 2019-10-03 17:51:13 · 321 阅读 · 1 评论