链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1233

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#problem/L

还是畅通工程

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 33361    Accepted Submission(s): 15057

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

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; const int N = ;
const int INF = 0xfffffff; int n, J[N][N], dist[N], vis[N]; int Prim()
{
int i, j, ans=;
dist[]=;
memset(vis, , sizeof(vis));
vis[]=; for(i=; i<=n; i++)
dist[i]=J[][i]; for(i=; i<n; i++)
{
int index=, MIN=INF;
for(j=; j<=n; j++)
{
if(!vis[j] && dist[j]<MIN)
{
index=j;
MIN=dist[j];
}
}
vis[index]=;
ans += MIN;
for(j=; j<=n; j++)
{
if(!vis[j] && dist[j]>J[index][j])
dist[j]=J[index][j];
}
}
return ans;
} int main ()
{
while(scanf("%d", &n), n)
{
int i, j, a, b, t; memset(J, , sizeof(J)); for(i=; i<=n*(n-)/; i++)
{
scanf("%d%d%d", &a, &b, &t);
J[a][b]=J[b][a]=t;
} int ans=Prim(); printf("%d\n", ans);
}
return ;
}

最新文章

  1. codevs 3110 二叉堆练习3
  2. ARM的常数表达式
  3. ubuntu下添加/删除启动服务项
  4. (转载)Linux 套接字编程中的 5 个隐患
  5. DateTimePicker 控件的格式设置
  6. JVM系列文章(四):类载入机制
  7. cocos2d_随手篇1_关于ccTouchBegan的调用
  8. Topk引发的一些简单的思考
  9. NUnit单元测试初试
  10. EasyUI Combotree 只允许选择 叶子节点
  11. $.when()方法翻译
  12. sort函数的用法与实验
  13. Java中调用文件中所有bat脚本
  14. Android图表库MPAndroidChart(九)——神神秘秘的散点图
  15. 第十八篇 ANDROID的声音管理系统及服务
  16. Linux c codeblock的使用(四):创建自己的静态函数库
  17. leetcode208
  18. exec 动态脚本 里面的参数和sp_executesql (注意引号,否则容易异常)
  19. http 请求头大小写的问题
  20. 从命令行模式运行Windows管理工具。

热门文章

  1. 基于Sentinel的Redis3.2高可用方案
  2. UNION会自动删除重复项,union与union all的差异
  3. php 随笔算法
  4. 结对项目3-bug的三种状态
  5. ftp指令集
  6. 【JVM】浅谈双亲委派和破坏双亲委派
  7. Redis安装异常解决办法
  8. sqlserver查询区分大小写
  9. Windows&ldquo;储存并显示最近在开始菜单和任务栏中打开的项目&rdquo;显示灰色问题解决
  10. spring mvc leaning