HDU - 1233 还是畅通工程(最小生成树模板题)
2015-09-09 20:48
316 查看
还是畅通工程
Submit Status
Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
Sample Output
Hint
Time Limit: 2000MS | Memory Limit: 32768KB | 64bit IO Format: %I64d & %I64u |
Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
3 1 2 1 1 3 2 2 3 4 4 1 2 1 1 3 4 1 4 1 2 3 3 2 4 2 3 4 5 0
Sample Output
3 5
Hint
Hint Huge input, scanf is recommended.
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int mnx = 100 + 10; const int mxe = mnx*(mnx - 1) / 2; struct edge { int u, v, c; bool operator < (const edge &b) const { return c < b.c; } }e[mxe]; int n, m; int fa[mnx]; int find(int x) { if (fa[x] != x) fa[x] = find(fa[x]); return fa[x]; } int kruskal() { sort(e + 1, e + m + 1); //边排序 for (int i = 1; i <= n; i++) //并查集初始化 fa[i] = i; int ret = 0; for (int i = 1; i <= m; i++) { int u = e[i].u; int v = e[i].v; int c = e[i].c; u = find(u); v = find(v); if (u != v) { ret += c; fa[u] = v; } } return ret; } int main() { while (scanf("%d", &n) != EOF&&n) { m = n*(n - 1) / 2; int a, b, c; for (int i = 1; i <= m; i++) { scanf("%d%d%d", &a, &b, &c); e[i].u = a; e[i].v = b; e[i].c = c; } int ans=kruskal(); printf("%d\n", ans); } }
相关文章推荐
- 国科:做一家有梦想的芯片企业 五年后年收入100亿---C114
- java读取网页
- 数据库访问性能优化
- hibernate中one-to-one两种配置方式
- 快速排序
- C语言去掉字符串前后空格,中间多余空格
- centos7在VMware下配置网络连接
- bootstrap笔记第一天
- 算法导论——动态规划之最长公共子序列(LCS)和最长回文子序列(LPS)
- POJ - 1287 Networking(最小生成树模板题)
- 为什么解析 array_column不可用,
- 第一天:探索(2)
- Web前端——JQuery的进阶(测试使用 jQuery进行指定的操作)
- Codechef September Challenge 2015
- 有return的情况下try catch finally的执行顺序
- list.h 解析
- role 'PLUSTRACE' does not exist
- WSDL2java简单使用
- 用枚举器遍历数组倒序输出数组和给数组元素排序
- 书签去重