hdoj1232 畅通工程(并查集)
2017-12-01 10:13
489 查看
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1232
思路
使用并查集求解。
代码
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N = 1000 + 10; int p ; void make_set(int n) { for (int i = 1; i <= n; i++) p[i] = -1; } int find_root(int i) { if (p[i] == -1) return i; else { int t = find_root(p[i]); //路径压缩 p[i] = t; return t; } } void union_set(int a, int b) { int ra = find_root(a); int rb = find_root(b); if (ra != rb) p[ra] = rb; } int main() { //freopen("hdoj1232.txt", "r", stdin); int n, m; while (scanf("%d%d", &n, &m) == 2 && n) { make_set(n); int a, b; for (int i = 0; i < m; i++) { scanf("%d%d", &a, &b); union_set(a, b); } int ans = 0; for (int i = 1;i <= n;i++) if (p[i] == -1) ans++; printf("%d\n", ans - 1); } return 0; }
相关文章推荐
- HDoj-1232-畅通工程-并查集
- HDOJ_1232 并查集 畅通工程
- hdoj 1232 畅通工程【并查集】
- HDOJ 畅通工程 1232(并查集入门)
- hdoj 1232 畅通工程 【并查集】
- HDOJ1232. 畅通工程(并查集连通块计数)
- HDOJ 1232 畅通工程(并查集)
- hdoj-1232 畅通工程【并查集】
- HDOJ 1232 畅通工程(并查集)
- HDOJ 1232 畅通工程 (并查集)
- HDOJ1232 畅通工程(并查集)
- HDOJ 1232 畅通工程(并查集)
- HDOJ 题目1232 畅通工程(并查集)
- 并查集——HDOJ-1232-畅通工程
- HDOJ 1232:畅通工程 并查集求解子图的个数
- 并查集 HDOJ 1232 畅通工程
- Num 18: HDOJ: 题目1232 : 畅通工程 [ 并查集 ]
- HDOJ 1232 畅通工程 (并查集)
- hdu/hdoj 1232 畅通工程---并查集
- HDOJ 1232 畅通工程 (并查集)