HDU1233--还是畅通工程--最小生成树--kruskal
2016-03-18 13:56
411 查看
Problem 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
HintHint
Huge input, scanf is recommended.
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
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
HintHint
Huge input, scanf is recommended.
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int f[105]; struct edge{ int u; int v; int w; }; int cmp(struct edge e1,struct edge e2){//规定sort的排序方式,结构体内的排序方法 return e1.w < e2.w; } int getf(int num){ if(f[num] == num) return f[num]; else{ f[num] = getf(f[num]); return f[num]; } } int merge(int u,int v){ int t1 = getf(u); int t2 = getf(v); if(t1 != t2){ f[t2] = t1; return 1; } return 0; } int main(){ int n; while(scanf("%d",&n),n>0){ struct edge e[10000]; for(int i = 0; i < n*(n-1)/2 ;i++){ cin>>e[i].u>>e[i].v>>e[i].w; } sort(e,e+n*(n-1)/2,cmp); int sum = 0; int cnt = 0; for(int i = 1 ; i <= n; i++) f[i] = i; //kruskal 算法 for(int i = 0; i < n*(n-1)/2; i++){ //判断一条边的两个顶点是否已经连通,即判断是否在同一个集合中 if(merge(e[i].u,e[i].v)){//如果目前还没有连通就选这条边 cnt++; sum = sum + e[i].w; } if(cnt == n-1) //选了n-1条边即可 break; } cout<<sum<<endl; } }
相关文章推荐
- jetty和html和tcpdump的关联
- nginx和excel和sqlserver的关联
- 数据库事务知识梳理.概念
- linq和ssh和redis的关联
- commonio和jetty和apache的关联
- android和excel和oracle的关联
- js小问题
- jquery和jboss和adb的关联
- excel和javascript和apache的关联
- Fragment的一些介绍
- 进程与线程
- mysql在服务器异常断电后,无法重启解决办法
- ios 字符串转date,模拟器ok,真机不ok,
- spring组件扫描<context:component-scan/>使用详解
- php和jak和excel的关联
- 解决linux与windows时间相差8小时
- ssh和velocity和jak的关联
- sqlplus和jboss和jsp的关联
- Android 快速开发框架:推荐10个框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、dhroid..
- jsp和nginx和android的关联