hdu 1301 Jungle Roads(最小生成树Kruskal)
2010-09-16 11:13
357 查看
/* Author: ACb0y Date: 2010年9月16日11:04:42 Type: MST kruskal ProblemId: hdu 1301 Jungle Roads Result: 2960607 2010-09-16 11:04:37 Accepted 1301 0MS 260K 1261 B C++ ACb0y */ #include <iostream> using namespace std; #define inf 999999999 int n, q; int g[30][30]; int father[30]; struct edge { int x, y; int w; }; edge edges[900]; int find(int x) { if (x != father[x]) { return find(father[x]); } return x; } int cmp(const void * a, const void * b) { edge * pa = (edge *) a; edge * pb = (edge *) b; return pa->w > pb->w ? 1 : -1; } void MST_Kruskal() { int i, j; for (i = 1; i <= n; i++) { father[i] = i; } int c = 0; for (i = 1; i <= n; i++) { for (j = i + 1; j <= n; j++) { edges[c].w = g[i][j]; edges[c].x = i; edges[c].y = j; c++; } } qsort(edges, c, sizeof(edge), cmp); int ans = 0; for (i = 0; i < c; i++) { int x = find(edges[i].x); int y = find(edges[i].y); if (x != y) { ans += edges[i].w; father[x] = y; } } cout << ans << endl; } int main() { int i, j; #ifndef ONLINE_JUDGE freopen("1301.txt", "r", stdin); #endif while (cin >> n) { if (n == 0) break; for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { g[i][j] = inf; } } for (i = 1; i < n; i++) { char a; cin >> a; int t; cin >> t; for (j = 1; j <= t; j++) { int temp; cin >> a >> temp; int k = a - 'A' + 1; g[i][k] = g[k][i] = temp; } } MST_Kruskal(); } return 0; }
相关文章推荐
- hdu 1301 Jungle Roads(最小生成树kruskal)
- HDU 1301 Jungle Roads(最小生成树Kruskal)
- HDU 1301 Jungle Roads (Kruskal求最小生成树)
- HDU 1301 Jungle Roads (最小生成树)kruskal
- HDU-1301 Jungle Roads (最小生成树)
- hdu 1301(最小生成树kruskal)
- POJ-1251 && HDU-1301 -Jungle Roads [最小生成树]
- hdu 1301(最小生成树kruskal)
- HDU 1301 Jungle Roads (最小生成树)
- hdu 1301 Jungle Roads (最小生成树)
- 杭电 1301 Jungle Roads 【最小生成树&&Kruskal】
- HDU - 1301 - Jungle Roads (最小生成树!!prim算法!!)
- 最小生成树 Kruscal与Prime HDU 1233 还是畅通工程 HDU 1301 Jungle Roads
- HDU 1301 Jungle Roads (最小生成树) By-小宇
- hdu 1301 Jungle Roads(最小生成树Prim算法)
- hdu 1301 Jungle Roads (最小生成树)
- HDU-1301 Jungle Roads 并查集/最小生成数
- HDU 1301 Jungle Roads (最小生成树/模板题)
- HDU 1301-Jungle Roads (Kruscal 最小生成树)
- HDU 1301 Jungle Roads (Kruscal 最小生成树)