题目1024:畅通工程
/*
题目描述:省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。
输入:测试输入包含若干测试用例。每个测试用例的第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
?
*/
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>using namespace std;const int M = 100 + 10;
const int N = M * (M - 1) / 2;int p[M];
int u[M];
int v[M];
int cost[M];
int m, n;
int id[M];int cmp(const void *a, const void *b);
int find(int x);int main()
{#ifndef ONLINE_JUDGEifstream cin("d:\\OJ\\uva_in.txt");#endif // ONLINE_JUDGEwhile (cin >> n >> m) {if (n == 0) break;memset(p, -1, sizeof(p));for (int i = 1; i <= n; i++) {id[i] = i;cin >> u[i] >> v[i] >> cost[i];}qsort(&id[1], n, sizeof(int), cmp);int ans = 0;for (int i = 1; i <= n; i++) {int a = find(u[id[i]]);int b = find(v[id[i]]);if (a != b) {ans += cost[id[i]];p[b] = a;}}int cnt = 0;for (int i = 1; i <= m; i++) {if (p[i] < 0)cnt++;}if (cnt > 1)cout << "?" << endl;else {cout << ans << endl;}}return 0;
}int cmp(const void *a, const void *b)
{int *pa = (int *)a;int *pb = (int *)b;return cost[*pa] - cost[*pb];
}int find(int x)
{return p[x] < 0 ? x: p[x] = find(p[x]);
}
题目1024:畅通工程相关推荐
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...
- 九度OJ——1024畅通工程
题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公 ...
- 九度OJ——1028继续畅通工程
题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...
- 畅通工程//最小生成树prim
题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...
- HDOJ 1875 HDU 1875 畅通工程再续 ACM 1875 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1875 ...
- 畅通工程 hdu 1232 HDU - 1863 (并查集+最小生成树)
畅通工程hdu 1232 并查集 Problem Description Input Output 参考代码 HDU - 1863 Problem Description Input Output 参 ...
- 九度oj 题目1028:继续畅通工程
题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...
- 题目1028:继续畅通工程
/********************************************* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...
最新文章
- 手把手pytorch-transformers实战
- SharePoint 2013 如何使用TaxonomyWebTaggingControl 控件
- Idea自带工具解决冲突
- docker安装gitlab_Gitlab 中 CI/CD 自动化部署与使用
- 一个B/S结构自动二次请求需求的实现
- Scude导入MySQL_FM2017_FMF赛季更新和真实修正数据库[更新至9.9,超过89000个更新]
- doc自动生成html,java web应用中自动生成文章html页面的实现.doc
- 我并不想劝人创业当老板
- ubuntu 14.04 下 安装samba 及SSH 服务端的方法
- OpenCV Mat 类型定义和赋值
- struts2中struts.xml配置文件详解
- tensorflow实现手写数字识别
- 需求分析(团队作业3)
- 【编译原理】语义分析S属性定义的自下而上计算
- 直播APP软件开发,直播系统开发的技术架构揭秘
- Spring Cloud 微服务项目实战 -
- Rigify:面向初学者解决Rigify各种错误的入门级通用解决办法
- 穿越派·派盘 + Solid Explorer = 全能 Android 文件管理器
- 《九》微信小程序中的自定义组件
- python多线程爬虫案例之爬取麦田
热门文章
- .NET常见线程简介
- python开发的软件sparrow-黑客常用wifi蓝牙分析攻击工具,让你的设备陷入危险之中...
- pycharm和python区别-一些 PyCharm 的使用和设置建议
- python能绘制统计图吗-Python数据科学(九)- 使用Pandas绘制统计图表
- python 类-Python中的类
- python职能-最受欢迎的10家互联网公司揭秘Python薪资!
- 2!=5 or 0在python中是否正确-python and or用法
- python画图哆啦a梦-python 绘制哆啦A梦
- python源代码-Python 源码深度剖析
- python语言怎么学-怎么学Python语言呢?粤嵌Python学习路线入门