nyist 608 并查集模板
2013-04-21 16:15
204 查看
#include<stdio.h> int father[1005]; int find(int x) //寻找集合的祖先 { if(x==father[x]) return father[x]; return father[x] = find(father[x]);//路径压缩 } void merge(int a,int b) //合并集合 { int G = find(a); int H = find(b); father[G] = H; } int main() { int N,M,n,m; while(scanf("%d",&N)!=EOF,N) { scanf("%d",&M); int sum = 0; for(int i=1;i<=N;i++) father[i] = i; for(int j=0;j<M;j++) { scanf("%d%d",&n,&m); merge(n,m); } for(int s=1;s<=N;s++) { if(father[s]==s) sum++; } printf("%d\n",sum-1); } }
相关文章推荐
- HDU-1232/NYOJ-608畅通工程,并查集模板题,,水过~~~
- nyist 608 畅通工程(并查集)
- hdu 1856 More is better 并查集模板题
- 并查集(——模板习题与总结)
- 【bzoj1455】【罗马游戏】左偏树+并查集(模板)
- 【模板】并查集
- 并查集模板及对应模板题
- HDU 1232 畅通工程(模板——并查集)
- 并查集详解(模板)
- 【并查集 最小生成树两种模板(MST)】
- hdu1231 并查集模板题
- SDUTOJ [2801] 并查集模板
- 并查集 模板
- 【POJ2492】【加权并查集模板题】
- HDU1213 并查集模板
- caioj1092 并查集模板
- HDU 1232 (畅通工程) 并查集经典模板题
- 【模板】并查集
- 并查集模板
- 并查集模板