Hdoj1233还是畅通工程
来源:互联网 发布:JAVA对象哈希值 编辑:程序博客网 时间:2024/06/06 06:48
Hdoj1233:
还是畅通工程
Problem Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
31 2 11 3 22 3 441 2 11 3 41 4 12 3 32 4 23 4 50
Sample Output
35Huge input, scanf is recommended.HintHint
Source
浙大计算机研究生复试上机考试-2006年
#include <cstdio>#include <algorithm>using namespace std;struct node{ int x,y,z; bool operator<(const node &q)const{ return z<q.z; }}a[5000];int n,p[101],ans;int fid(int x){ return p[x]==x?x:fid(p[x]);}void join(int x,int y,int c){ int f1=fid(x); int f2=fid(y); if(f1!=f2) { ans+=a[c].z; p[f1]=f2; }}int main(){ while(scanf("%d",&n)!=EOF&&n) { ans=0; for(int i=1;i<=n;i++) p[i]=i; int m=n*(n-1)/2; for(int i=0;i<m;i++) scanf("%d %d %d",&a[i].x,&a[i].y,&a[i].z); sort(a,a+m); for(int i=0;i<m;i++) join(a[i].x,a[i].y,i); printf("%d\n",ans); } return 0;}
- HDOJ1233-还是畅通工程
- 还是畅通工程hdoj1233
- hdoj1233 还是畅通工程
- hdoj1233 还是畅通工程
- Hdoj1233还是畅通工程
- hdoj1233还是畅通工程
- hdoj1233 还是畅通工程
- HDOJ1233 还是畅通工程(kru)
- hdoj1233-还是畅通工程(并查集-kruskal && prim)
- HDOJ1233 还是畅通工程(最小生成树,prim算法)
- 关于prim算法的讨论:例:HDOJ1233——还是畅通工程
- HDOJ1233. 还是畅通工程(并查集+最小生成树)
- 还是畅通工程 hdu1233
- hdu1233还是畅通工程
- hdu1233还是畅通工程
- HDu1233 还是畅通工程
- hdu1233还是畅通工程
- 还是畅通工程hdu1233
- 刚子扯谈:"网络写手"的华丽升华"牛逼的自媒体"你在被活着
- git 学习笔记
- UVA 299 Train Swapping
- Jquery实现一个jsp向另一个jsp跳转并传参
- c#查询数据库给combobox赋值
- Hdoj1233还是畅通工程
- Linux 设置hosts.allow与hosts.deny屏蔽IP
- UVA 156 Ananagrams
- 一个数组中寻找第二大数字
- The Architecture of Open Source Applications---VTK
- [unity3D基础教程]Unity3D材质与着色器 Materials and Shaders
- 改写整数
- 刚子扯谈 活着 没那么简单
- 第三章数程序设计初步--控制结构综合项目2-2输出千以内的素数