hdu1232 并查集
2016-11-21 08:42
162 查看
#include<stdio.h> int f[1001]; int m, n, a[2], i, num; int getf(int n){ if(f ==n){ return n; }else{ f =getf(f ); return f ; } } void merge(int x, int y){ int t1, t2; t1 = getf(x); t2 = getf(y); if(t1 != t2){ f[t2] = t1; } } void init(){ num = 0; for(i = 1; i <= m; i++){ f[i] = i; } } int main() { while(scanf("%d %d", &m, &n)){ if(m==0){ break; } init(); while(n--){ scanf("%d %d", &a[0], &a[1]); merge(a[0], a[1]); } for(i = 1; i <= m; i++){ if(f[i] != i){ continue; } else{ num++; } } printf("%d\n", num-1); } return 0; }
相关文章推荐
- 畅通工程-并查集-HDU1232
- 【并查集】-HDU1232-畅通工程
- 并查集入门简略笔记 附HDU1232
- hdu1232(基础并查集)
- hdu1232 畅通工程(并查集)
- 并查集-HDU1232
- kruskal_并查集_代码模板_hdu1232
- 并查集--hdu1232(基本模板题)
- 并查集hdu1232
- 【并查集】畅通工程 _HDU1232
- 【hdu1232】畅通工程【并查集】
- HDU1232:畅通工程(并查集)
- hdu1232-畅通工程(并查集)
- 并查集-hdu1232
- 并查集之求连通块的数量 HDU1232 畅通工程
- 并查集 HDU1232 畅通工程
- HDU1232--并查集入门(畅通工程)
- 并查集——HDU1232(畅通工程)
- 畅通工程(hdu1232)并查集
- 并查集 HDU1232 畅通工程