用到并查集 所以记录下 好久没用这个了
#include<stdio.h>
#include<string.h>
int u[1005];
int find_father(int x)
{
while(u[x]!=-1)
{
x=u[x];
}
return x;
}
int main()
{
int n,m,i,j,a,b,sum;
while(scanf("%d",&n)!=EOF,n)
{
scanf("%d",&m);
memset(u,-1,sizeof(u));
while(m--)
{
scanf("%d%d",&a,&b);
a=find_father(a);
b=find_father(b);
if(a!=b)
{
u[a]=b;
}
}
sum=0;
for(i=1;i<=n;i++)
{
if(u[i]==-1)sum++;
}
if(sum)printf("%d\n",sum-1);
else
printf("0\n");
}
return 0;
}