个人模板 Kruskal 最小生成树
2017-07-01 10:24
281 查看
#include <stdio.h> #include <algorithm> using namespace std; const int N = 1e5 + 10; int n, m; struct xx{ int u, v, len; }a ; int f ; int Find(int x){ return x == f[x] ? x : (f[x] = Find(f[x])); } int Merge(int a, int b){ int aa = Find(a); int bb = Find(b); if(aa != bb){ f[aa] = bb; return 1; } return 0; } int cmp(xx a, xx b){ return a.len < b.len; } int main(){ while(scanf("%d", &n) == 1, n){ scanf("%d", &m); for(int i = 1; i <= n; i++){ f[i] = i; } for(int i = 0; i < m; i++){ scanf("%d%d%d", &a[i].u, &a[i].v, &a[i].len); } sort(a, a+m, cmp); int sum = 1, ans = 0; for(int i = 0; i < m; i++){ if(Merge(a[i].u, a[i].v)){ ans += a[i].len, sum++; } if(sum == n) break; } printf("%d\n", ans); } }
相关文章推荐
- [hoj 1632]Jungle Roads[Kruskal最小生成树模板题]
- HDOJ 题目1233还是畅通工程(最小生成树,kruskal模板)
- 最小生成树kruskal与prim算法模板
- HDU-1879 最小生成树(Kruskal)模板题
- 【模板】最小生成树Kruskal
- 最小生成树—Kruskal模板
- 最小生成树 Kruskal 算法模板
- 算法提高 最小方差生成树(Kruskal)_模板
- [kuangbin带你飞]专题六 最小生成树 (prim)(kruskal)(模板)
- 最小生成树 :: Prim && Kruskal 模板
- [备战NOI同步赛]Kruskal最小生成树模板
- poj-1258-最小生成树kruskal模板
- 最小生成树(模板 Kruskal)
- poj1258 Agri-Net 最小生成树 prim kruskal 模板
- 最小生成树(kruskal模版 模板)
- 最小生成树-kruskal模板
- 最小生成树模板(prim+kruskal+prim的优化)
- hdu1879 最小生成树模板 peim和kruskal
- 【模板】Kruskal 最小生成树
- POJ2395Out of Hay(最小生成树Kruskal模板)