/*********************************************
题目描述:省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。
输入:测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建。当N为0时输入结束。
输出:每个测试用例的输出占一行,输出全省畅通需要的最低成本。
样例输入:
3
1 2 1 0
1 3 2 0
2 3 4 0
3
1 2 1 0
1 3 2 0
2 3 4 1
3
1 2 1 0
1 3 2 1
2 3 4 1
0
样例输出:
3
1
0
********************************************/
#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[N];
int v[N];
int cost[N];
int status[N];
int m, n;
int id[N];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) {if (n == 0) break;memset(p, -1, sizeof(p));for (int i = 0; i < n * (n - 1) / 2; i++) {id[i] = i;cin >> u[i] >> v[i] >> cost[i] >> status[i];if (status[i]) {int a = find(u[i]);int b = find(v[i]);if (a != b)p[b] = a;}}qsort(id, n * (n - 1) / 2, sizeof(int), cmp);int ans = 0;for (int i = 0; i < n * (n - 1) / 2; i++) {int a = find(u[id[i]]);int b = find(v[id[i]]);if (a != b) {ans += cost[id[i]];p[b] = a;}}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]));
}

												

题目1028:继续畅通工程相关推荐

  1. 题目1024:畅通工程

    /* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建 ...

  2. 题目1012:畅通工程

    /*********************************** 题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程&quo ...

  3. 九度OJ——1028继续畅通工程

    题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...

  4. Codeup墓地-问题 D: 继续畅通工程

    题目描述 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建 ...

  5. Codeup-问题 C: 畅通工程

    题目描述 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路 ...

  6. [最小生成树] 继续畅通工程

    题目描述 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建 ...

  7. 1118: 继续畅通工程

    题目描述 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建 ...

  8. poj 2244 最短路 和 poj 1874 畅通工程续 dijkstra(迪杰斯特拉)

    畅通工程续,题目链接,点击这里, 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  9. 九度oj 题目1028:继续畅通工程

    题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...

最新文章

  1. 1.3.3 错题整理(组成原理)
  2. 《途客圈创业记:不疯魔,不成活》一一1.6 申请助跑计划
  3. 【线上分享】RTC在传统流媒体行业的应用实践
  4. 免费网络研讨会:调试生产中Java的新方法
  5. Effective Java~26. 不要使用 raw type
  6. NVIDIA背书-Kaldi是目前最受欢迎的开源语音识别框架
  7. 史上最强技术电信诈骗蔓延!无法防范!只能等死!
  8. web安全之逻辑漏洞
  9. Http协议及其实现httpd
  10. Transact-SQL
  11. mysql查找附近算法_附近地点搜索解决方案
  12. PTA——基础编程题 | 7-27 冒泡法排序 (20分)
  13. 网页转换成电脑exe软件简单办法
  14. 智慧交通|沪宜公路智慧车列交通仿真研究
  15. 物理引擎的赛车撞人游戏(一) 画地图 -- graphics
  16. 在linux中at 调度出错,Linux 技巧: 用cron 和at 调度作业
  17. html轮廓线怎么取消,c4d这些线条怎么取消掉
  18. Linux下安装realtek8812au /8814au 驱动
  19. 正点原子ESP8266的使用
  20. mt6355功率设计注意事项 [仅为mt 6758资料汇总]

热门文章

  1. python笔记基础-python学习笔记之基础一(第一天)
  2. python的安装教程-python安装教程
  3. python详细安装教程3.7.4-python 3.7.4 安装 opencv的教程
  4. python是一门什么课程-为什么一定要让孩子学会一门编程语言?
  5. python自学书籍推荐豆瓣-想学python,请问有没好的书籍推荐?
  6. mac安装完python怎么打开-Mac OS系统如何安装python
  7. python网络爬虫的基本步骤-Python网络爬虫与信息提取(一)(入门篇)
  8. python买什么书好-Python入门经典书籍有哪些?有这三本就够了
  9. python编程课程上课有用吗-朋友圈里的编程课,是 Python 还是成功学?
  10. 我在学python-你们以为我在学C++?其实我在学Python!人生苦短!