还是畅通工程

某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。

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 
Huge input, scanf is recommended.

Hint

Hint
#include<stdio.h>
#include<algorithm>
#define MAX 1005
using namespace std; struct Edge{int u,v,len;//uv表示边所连接的两个顶点,len表示距离 const bool operator< (const Edge & rhs)const{//重载比较运算符 return len < rhs.len;//根据距离从小到大排序 }
}edge[6000];int fa[MAX];
int n,m;//n个顶点,m条路 int find(int x){if(fa[x]==x) return x;else return fa[x] = find(fa[x]);
}int kruskal(){int ans = 0,cnt = 0;//ans表示答案,cnt表示找到边的数组 for(int i = 0;i<=n;i++)//初始化 fa[i] = i;sort(edge,edge+m);//排序所有边 for(int i = 0;i<m;i++){//开始对排序好的边进行遍历 int x = find(edge[i].u);int y = find(edge[i].v);if(x!=y){ans += edge[i].len;fa[x] = y;cnt ++;}if(cnt==n-1) break; //找完n-1条边 }return ans;
}
int main(){while(scanf("%d",&n)!=EOF&&n!=0){//输入 m = n*(n-1)/2;for(int i = 0;i<m;i++){scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].len);}//核心代码 int len = kruskal();//输出 printf("%d\n",len);}return 0;
}

最小生成树--还是畅通工程相关推荐

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

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

  2. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

  3. hdu1879 继续畅通工程 最小生成树

    继续畅通工程 此题明显属于最小生成树的题目 关于最小生成树,有两种方法,一种是Kruskal方法,一种是Prim算法,第一种用并查集即可实现 1 /* 2 hdu1879 3 2013-03-18 1 ...

  4. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  5. hdu 1879 继续畅通工程 (最小生成树)

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. 【HDU - 1863】 畅通工程(并查集+最小生成树)

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

  7. HDU 1879 继续畅通工程 最小生成树

    继续畅通工程 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description ...

  8. 还是畅通工程 最小生成树

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...

  9. A - 还是畅通工程(最小生成树)

    点击打开链接 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通 ...

最新文章

  1. matlab最小分类错误全局二值化算法
  2. Service Intent must be explicit
  3. python基础知识整理-python入门基础知识点整理-20171214
  4. SIFT中LoG和DoG比较
  5. SpringCloud学习成长之路 五 路由器网关
  6. 用phpmyadmin更改root密码的方法
  7. Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射
  8. r720支持多少频率的内存吗_电脑基础知识:内存条知识大全,看完小学生都了解...
  9. 客户连接多个服务端_Linux 服务端最大并发数是多少?
  10. 一个数字几个字节_技术工坊40期-DAG技术特性以及在字节雪球Obyte项目的使用实践...
  11. 传说中四个月的java速成“大法”,我见识到了,不过就是没啥用
  12. 【工具】Movielens数据集详细介绍
  13. 跳转到高德地图或百度地图或高德网页导航
  14. CSDN博客专栏申请方法
  15. 内容公链Contentos首席科学家不建议刚毕业的年轻人直接从事区块链开发
  16. 欧拉运动放大算法实现心率检测
  17. UVa10158 War
  18. 什么是时序数据?如何治理?
  19. Trx-address和交易的address
  20. 如何将计算机声音改成音乐,win7系统把MP3音频转换成WAV格式的图文教程

热门文章

  1. 在stm32f103c8上移植nuttx系统
  2. 2017华为校招硬件逻辑工程师
  3. linux邮件thunderbird,Ubuntu 18.04安装最新版Thunderbird 邮件客户端
  4. 面试常见问题之adb命令
  5. ChinaSkills-网络系统管理(2022改革Linux部分CentOS7安装运行预测[不带图形界面])
  6. 在华为工作2年收入5千!,打算跳槽,出去面试还要掉薪,真是废了
  7. 任意阶幻方的python编程实现
  8. K8S与Vault集成,进行Secret管理
  9. java使用selenium-chrome-driver实现简单的本地爬虫
  10. Windows装机必备常用软件