还是畅通project

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 26779    Accepted Submission(s): 11952

Problem Description
某省调查乡村交通状况。得到的统计表中列出了随意两村庄间的距离。省政府“畅通project”的目标是使全省不论什么两个村庄间都能够实现公路交通(但不一定有直接的公路相连,仅仅要能间接通过公路可达就可以),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
 
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
#include<stdio.h>
#include<algorithm>
using namespace std;
int pre[5000];
struct st
{
int a,b,m;
}data[5000];
int find(int N) //查找结点的根
{
return pre[N]==N?N:pre[N]=find(pre[N]);
}
int join(int x,int y,int z,int *ans)//将结点间合并。并加上最短的距离。
{
int fx=find(x),fy=find(y);
if(fx!=fy)
{
pre[fx]=fy;
(*ans)+=z;
}
}
int cmp(st a,st b)//按城镇路程从小到大排序。
{
return a.m<b.m;
}
int main()
{
int i,n,k;
while(scanf("%d",&n),n)
{
int k=(n-1)*n/2,sum=0;
for(i=1;i<=k;i++) //初始化。
{
pre[i]=i;
}
for(i=1;i<=k;i++)
{
scanf("%d %d %d",&data[i].a,&data[i].b,&data[i].m);
}
sort(data+1,data+k+1,cmp);
for(i=1;i<=k;i++)
{
join(data[i].a,data[i].b,data[i].m,&sum);
}
printf("%d\n",sum);
}
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

还是畅通project(杭州电1233)的更多相关文章

  1. 畅通project(杭电1863)

    畅通project Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. 杭电1233还是畅通project

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  3. hdu 1233 还是畅通project (克鲁斯卡尔裸题)

    还是畅通project                                              Time Limit: 4000/2000 MS (Java/Others)    M ...

  4. 杭电1874畅通project绪

    畅通project续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. hdu 1233(还是畅通project)(prime算法,克鲁斯卡尔算法)(并查集,最小生成树)

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  6. hdu 1233 还是畅通project(kruskal求最小生成树)

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  7. 畅通project(杭电1232)

    畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. 杭电1863 畅通project

    畅通project Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. 杭电1232畅通project

    畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

随机推荐

  1. 找出N之内的所有完数

    时间限制: 10 Sec  内存限制: 128 MB 提交: 389  解决: 148 [提交][状态][讨论版] 题目描述 一个数如果恰好等于它的因子之和,这个数就称为"完数". ...

  2. 配置Tomcat出现Unsupported major.minor version 51.0

    在配置tomcat时,配置好jdk1.6,下载的tomcat8.0,结果执行start-up.bat,总是一闪而过,网上查了大量的资料,都说是可能是jdk没配置好,但实际上jdk的环境变量设置正常,后 ...

  3. REQIMPORT-购买内部应用程序(R12.2.3)

     採购内部申请(R12.2.3) --US Program:Requisition Import Short Name:REQIMPORT Application:Purchasing Execu ...

  4. 小牟Andorid下面MD5具体实现的思路总结

    Android的开发往往需要一定数目demo 从今起MD5一些加密算法提取物 看看是如何实现的 首先,我们必须明确为什么加密? 1 数据安全处理 2 防止数据窃取 3 有效的避免恶意攻击 4 保证文件 ...

  5. 13 于C#如何获得在IP住址

    首先,需要加入一个命名空间 using System.Net.NetworkInformation; using System.Net.Sockets; 以下是具体代码 GetPrivateIP(); ...

  6. cocos2d-x3.x屏蔽遮罩层屏蔽触摸button

    cocos2d-x3.x触摸方法改变后,.屏蔽掉的层实际上触摸事件的非常easy,首先touchbegan一定要回true,第二,该事件被设定为听吞没触摸true.最近登录触摸水平必须低于0,现在,我 ...

  7. Serializable 作用

    Serializable 作用 序列化的attribute,是为了利用序列化的技术 准备用于序列化的对象必须设置 [System.Serializable] 标签,该标签指示一个类能够序列化. 便于在 ...

  8. lsblk请参阅块设备

    lsblk可以查看分区和挂载的磁盘使用情况 lsblk全部的參数 -a, --all            显示全部设备  -b, --bytes          以bytes方式显示设备大小  - ...

  9. cocos2d-x3.0 windows 环境配置

    cocos2d-x3.0 windows 环境配置 参考Oo泡泡糖oO的CSDN博文 :http://blog.csdn.net/u010296979/article/details/24273393 ...

  10. 原子操作(atomic operation)

    深入分析Volatile的实现原理 引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共 ...