题目地址:
http://121.249.217.157:8080/contest/view.action?cid=54#problem/A
源代码:
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int f[1005];
int gg;
int F(int x)
{
if(f[x]!=x)
return F(f[x]);
else return x;
}
void make(int k,int l)
{
int a=F(k);
int b=F(l);
if(a!=b) gg--;
f[a]=b;
}
int main()
{
int n,m;
int i,j;
while(scanf("%d",&n)&&n)
{
scanf("%d",&m);
for(i=1;i<=n;i++)
f[i]=i;
int k,l;
gg=n-1;
for(i=0;i<m;i++)
{
scanf("%d%d",&k,&l);
make(k,l);
}
cout<<gg<<endl;
}
return 0;
}