#include<bits/stdc++.h>
using namespace std;
int pre[1100];
int m,n;
int c;
void init(){
for(int i=1;i<=n;i++)
pre[i]=i;
c=n-1;
}
int find(int x){
return pre[x]==x?x:find(pre[x]);
}
void unions(int a,int b){
int x=find(a);
int y=find(b);
if(x==y) return;
else{
pre[x]=y;
c--;
}
}
int main()
{
int a1,b1;
while(cin>>n&&n!=EOF){
if(n==0) break;
cin>>m;
init();
for(int i=0;i<m;i++){
cin>>a1>>b1;
unions(a1,b1);
}
cout<<c<<endl;
}
return 0;
}
相关文章
- 12-18hdu1232 并查集总结
- 12-18hdu1232
- 12-18HDU1232畅通工程
- 12-18hdu1232 畅通工程
- 12-18HDU1232 畅通工程 (并查集模板题)
- 12-18hdu1232 畅通工程 并查集的 应用
- 12-18HDU1232 畅通工程 2017-04-12 19:20 53人阅读 评论(0) 收藏
- 12-18利用并查集+贪心解决 Hdu1232