ZOJ 1406 Jungle Roads 【kruskal】
2011-08-10 10:33
405 查看
1406
//2621190 2011-08-10 10:31:25 Accepted 1406 C++ 0 184 ylwh! #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <algorithm> #define N 27 using namespace std; struct edge { int x, y; int cost; }e[N*N/2]; int root ; bool cmp(struct edge a, struct edge b) { return a.cost < b.cost; } int find_root(int x) { int temp; temp = x; while(temp != root[temp]) temp = root[temp]; root[x] = temp; return temp; } int main() { int n, k, temp, flag, d , cnt; int i, j, ans; char ch; while(scanf("%d", &n), n) { cnt = -1; ans = 0; for(i=0; i<n; i++) root[i] = i; for(i=0; i<n-1; i++) { scanf(" %c%d", &ch, &k); temp = ch - 'A'; while(k--) { scanf(" %c%d", &ch, &flag); e[++cnt].x = temp; e[cnt].y = ch - 'A'; e[cnt].cost = flag; } } sort(e, e+cnt+1, cmp); int a, b; for(i=0; i<=cnt; i++) { a = find_root(e[i].x); b = find_root(e[i].y); if(a != b) { root[b] = a; ans += e[i].cost; } } printf("%d\n", ans); } return 0; }
相关文章推荐
- ZOJ 1406 Jungle Roads (kruskal)
- zoj 1406 Jungle Roads(Prim || Kruskal)
- ZOJ 1406.Jungle Roads
- zoj 1406 jungle roads
- zoj 1406 poj 1251 Jungle Roads
- POJ1251 || ZOJ1406 kruskal求最小生成树
- zoj 1406 Jungle Roads
- zoj 1406 jungle roads
- zoj 1406 - Jungle Roads
- 1406 Jungle Roads(kruskal, 并查集)
- ZOJ 1406 POJ 1251 Jungle Roads 丛林中的道路,最小生成树,Kruskal算法
- zoj 1406 最小生成树 kruskal 和 prim用法
- poj 1251; zoj 1406 Jungle Roads[ MST ]
- ZOJ1406 POJ1251 Jungle Roads,Prim算法~
- zoj 1406 Jungle Roads
- POJ1251 || ZOJ1406 kruskal求最小生成树
- zoj 1406 Jungle Roads(最小生成树))
- zoj 1406 Jungle Roads
- zoj 1406 Jungle Roads(简单-MST)
- ZOJ 1406 Jungle Roads (最小生成树)