村村通

#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int n,m,b,l,f[1001];//b为begin,l为last
inline int fat(int i)
{
if(f[i]!=i)f[i]=fat(f[i]);
return f[i];
}
inline void unionn(int i,int j)
{
f[i]=j;
}
int main(){
for(long long o=-1000000;;o++)
{
scanf("%d",&n);
if(n!=0)
{
int sum=0;
scanf("%d",&m);
for(int i=1;i<=n;i++)
f[i]=i;
for(int i=1;i<=m;i++)
{
scanf("%d%d",&b,&l);
unionn(b,l);
}
for(int i=1;i<=n;i++)
{
if(fat(i)==i)
{
sum++;
}
}printf("%d\n",sum-1);
}else return 0;
}

}

//有人知道为什么超空间吗?

蒟蒻求教!

评论教我

猜你喜欢

转载自www.cnblogs.com/lbssxz/p/10759157.html