代码如下:
#include<bits/stdc++.h>
using namespace std;
int father[5005];
int find(int x)
{
if(father[x]!=x) father[x]=find(father[x]);
return x;
}
int main()
{
int i,j,n,m,x,y,fx,fy,ans=0;
for(i=1;i<=1005;i++) father[i]=i;
while(1)
{
cin>>n;
if(n==0) break;
cin>>m;
for(i=1;i<=n;i++) father[i]=i;
for(i=1;i<=m;i++)
{
cin>>x>>y;
fx=find(x);
fy=find(y);
father[fx]=fy;
}
for(i=1;i<=n;i++)
{
if(father[i]==i)
ans++;
}
cout<<ans-1<<endl;
ans=0;
}
return 0;
}