#include <iostream>
using namespace std;
int u[1010],v[1010],p[1010];
int find(int x)
{
//return p[x] == x ? x : p[x] = find(p[x]);
int t=p[x];
while(t!=p[t])
{
t=p[t];
}
return t;
}
int main()
{
int n,side,i,j,count;
while (cin>>n && n)
{
cin>>side;
for (i=1;i<=n;i++) p[i]=i;
for (i=1;i<=side;i++)
{
cin>>u[i]>>v[i];
int x = find(u[i]);
int y = find(v[i]);
if (x!=y)
p[x] = y;
}
count=0;
for (i=1;i<=n;i++)
if (p[i]==i) count++;
cout<<count-1<<endl;
}
return 0;
}
hdu 1232 畅通工程
最新推荐文章于 2019-05-04 20:26:03 发布