#include<stdio.h>
int p[100005];
int find(int n)
{
if(p[n]!=n)
{
p[n]=find(p[n]);
}
return p[n];
}
int main()
{
int n,m,count,i,a,b;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
{
break;
}
scanf("%d",&m);
for(i=1;i<=n;i++)
{
p[i]=i;
}
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
a=find(a);
b=find(b);
p[a]=b;
}
count=-1;
for(i=1;i<=n;i++)
{
if(p[i]==i)
{
count++;
}
}
printf("%d\n",count);
}
}
Hdu1232 - 畅通工程 - 并查集
最新推荐文章于 2021-09-23 13:41:44 发布