您的位置:首页 > 其它

UVA 1160——X-Plosives

2016-03-21 16:02 363 查看
题意:给定一些化合物(含有两个元素),当满足k个化合物且有k个元素的时候会发生爆炸,问多少个化合物是不能装车的。

思路:并查集的简单应用。实际上满足条件的时候是一个环,因此用并查集简单判环即可。

code:

#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int fa
;
int getfa(int x){return fa[x]!=x?fa[x]=getfa(fa[x]):x;}

int main()
{
int x,y;
while (~scanf("%d",&x)){
for (int i=0;i<N;i++) fa[i]=i;
int res=0;
while (x!=-1){
scanf("%d",&y);
x=getfa(x);
y=getfa(y);
if (x==y) ++res;
else fa[x]=y;
scanf("%d",&x);
}
printf("%d\n",res);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: