HDU 1233--还是畅通工程
来源:互联网 发布:淘宝货物怎么上架 编辑:程序博客网 时间:2024/06/01 10:39
题目:
Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
31 2 11 3 22 3 441 2 11 3 41 4 12 3 32 4 23 4 50
Sample Output
35 Huge input, scanf is recommended.
题意:求最小生成树。把边从小到大排序,小的边先取。
实现:
#include <stdio.h>#include <string.h>#include <math.h>#include <queue>#include <vector>#include <iostream>#include <algorithm>using namespace std;const int MAX = 105;int p[MAX];int path[MAX][MAX];struct node { int v1, v2, e; bool friend operator < (node n1, node n2) { return n1.e > n2.e; }};//优先小的边int _find(int x) { return p[x] = (p[x] == x? x:_find(p[x]));}//并查集int main() { int n; while (scanf("%d", &n) != EOF) { if (n == 0) break; memset(path, 0, sizeof(path)); for (int i = 1; i <= n; i++) { p[i] = i; } priority_queue <node> q; int k = (n * (n - 1)) / 2; int v1, v2, value; for (int i = 0; i < k; i++) { scanf("%d%d%d", &v1, &v2, &value); node g; g.v1 = v1; g.v2 = v2; g.e = value; <span title="Count : 5" class="shx-hilit"> q</span><span class="sh-symbol">.</span><span class="sh-function">push</span><span class="sh-symbol">(</span>g<span class="sh-symbol">);</span> } int ans = 0; while (!q.empty()) { node head = q.top(); q.pop(); int x, y; x = _find(head.v1); y = _find(head.v2); if (x != y) { p[x] = y; ans += head.e;//不在一个集合就添边 } } printf("%d\n", ans); }}
0 0
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu - 1233 - 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- HDU-1233-还是畅通工程
- HDU-1233-还是畅通工程
- Android缓存
- Servlet和Jsp中的Request转发、重定向
- 最长公共子串和最长公共子序列
- java中IO整理
- POJ1256
- HDU 1233--还是畅通工程
- 几种常见的列表菜单
- Java中@Resource注解和@Autowired注解(spring中的@Autowired)
- 对第三周知识的复习
- java中的内部类简介
- linux内核线程、轻量级进程、用户进程
- java动态代理(JDK和cglib)
- 仔细分析mapreduce代码
- 数据库增删改查未拼接的 sql语句