九度OJ 1024:畅通工程
来源:互联网 发布:淘宝联盟推广的优惠券 编辑:程序博客网 时间:2024/05/23 15:59
题目描述:
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。
输入:
测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N为0时,全部输入结束,相应的结果不要输出。
输出:
对每个测试用例,在1行里输出全省畅通需要的最低成本。若统计数据不足以保证畅通,则输出“?”。
样例输入:
3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100
样例输出:
3
?
来源:
2007年浙江大学计算机及软件工程研究生机试真题
#include <cstdio>#include <algorithm>using namespace std;struct A{ int from; int to; int w; bool operator < (A a)const{ return w < a.w; }}edge[400];int tree[27];int findRoot(int x){ int ret = x; while(tree[ret] != -1){ ret = tree[ret]; } while(tree[x] != -1){ int t = tree[x]; tree[x] = ret; x = t; } return ret;}int main(){ int n,m; while(scanf("%d",&n) != EOF){ if(n == 0)break; scanf("%d",&m); int size = 0; for(int i = 0;i < n;i++){ int from,to,we; scanf("%d%d%d",&from,&to,&we); A temp;temp.from = from; temp.to = to;temp.w = we; edge[size++] = temp; } for(int i = 1;i <= m;i++) tree[i] = -1; sort(edge,edge+size); int ans = 0; for(int i = 0;i < size;i++){ int a = findRoot(edge[i].from); int b = findRoot(edge[i].to); if(a != b){ tree[a] = b; ans += edge[i].w; } } int cnt = 0; for(int i = 1;i <= m;i++) if(tree[i] == -1)cnt++; if(cnt == 1) printf("%d\n",ans); else{ printf("?\n"); } }}
阅读全文
0 0
- 九度oj 题目1024:畅通工程
- 九度OJ 题目1024:畅通工程
- 九度OJ 1024 畅通工程
- 题目1024:畅通工程 九度OJ
- 九度OJ 1024:畅通工程
- 九度OJ题目1024:畅通工程
- HDU 1863 畅通工程(九度OJ 1024)
- 九度oj 1024 (杭电)畅通工程
- 九度OJ 1024:畅通工程 (最小生成树)
- 【九度OJ】题目1024:畅通工程 解题报告
- 九度OJ——1024畅通工程
- 九度oj 题目1012:畅通工程
- 九度OJ 1012 畅通工程 JAVA
- 九度oj-1028-继续畅通工程
- 九度OJ题目1012:畅通工程
- <九度 OJ>题目1012:畅通工程
- 九度OJ:题目 1012 畅通工程
- 九度OJ - 1028 - 继续畅通工程
- jenkins中系统设置配置
- XmlDocument类
- andriod测试环境
- 网格环境配置(三):安装SGE
- 制作linux启动logo
- 九度OJ 1024:畅通工程
- RxJava------轻松理解(一)
- QT QDateTime
- 计算机网络基础之网络5层结构及对应的协议
- Oracle从SEQUENCE跳号说起
- Android Activity四种启动模式
- 单元测试需要切换数据源和继承AbstractTransactionalJUnit4springContextTests类冲突
- android工具测试-常见问题及解决办法
- java中日期格式化