poj 1611 The Suspects(简单并查集)

时间:2021-07-04 06:27:28

题目:http://poj.org/problem?id=1611

0号是病原,求多少人有可能感染

 #include<stdio.h>
#include<string.h>
#define maxn 50000 int u,v,bin[maxn];
int find(int x)
{
return bin[x]==x?x:(bin[x]=find(bin[x]));
}; int main()
{
int n,m,i,j,x,y,k,sum,t;
while(~scanf("%d%d",&n,&m)&&(n!=||m!=))
{
sum=;
for(i=; i<n; i++)
bin[i]=i;
for(i=; i<m; i++)
{
scanf("%d",&k);
scanf("%d",&u);
for(j=; j<k; j++)
{
scanf("%d",&v);
x=find(u);
y=find(v);
if(x!=y)
bin[x]=y;
}
}
t=find();
for(i=; i<n; i++)
{
if(find(i)==t)
sum++;
}
printf("%d\n",sum);
}
}