还是畅通工程

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

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

Hint Huge input, scanf is recommended.

Source

浙大计算机研究生复试上机考试-2006年

题解:

求解最小生成树。

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define INF 10000001
#define maxn 101
int map[maxn][maxn];
int cost[maxn];
int chosed[maxn];
int count;
long total_cost;
void init_map(int n){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
map[i][j]=(i==j?0:INF);
}
void init(int n){
int i;
memset( chosed , 0 , sizeof(chosed));
chosed[1]=1;
count=1;
for( i = 1 ; i <= n ; i++ )
cost[i] = map[1][i];
}
void prim(int n){
int min,min_idx;
int i;
total_cost=0;
while( count <=n ){
min = INF;
for( i = 2 ; i <= n ; i++ ){
if( !chosed[i] && cost[i] < min){
min_idx=i;
min=cost[i];
}
}
if( min == INF ) return;
chosed[min_idx]=1;
total_cost+=min;
count++;
for( i = 1 ; i <= n ; i++)
if(!chosed[i]&& map[min_idx][i]<cost[i])
cost[i] = map[min_idx][i];
}
int main(){
int road,node,i;
while(scanf("%d",&node)!=EOF&& node ){
road=(node-1)*node/2;
init_map(node);
count=0;
while(road--){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
map[a][b]=c;
map[b][a]=c;
}
init(node);
prim(node);
printf("%ld\n",total_cost);
}
}

最新文章

  1. 轻松搞定Win8 IIS支持SVC 从而实现IIS寄宿WCF服务
  2. fcc
  3. Swift开发iOS应用过程中的问题和解决记录
  4. 如何解决cellIndex在IE下兼容性问题
  5. Java修改数组长度
  6. 清除浮动4-插入多余的div
  7. socket.io+angular.js+express.js做个聊天应用(一)
  8. [转载]C#中播放背景音乐几种的方法
  9. mysql qps tps
  10. c内存结构
  11. Android系统手机端抓包方法(tcpdump)
  12. lunx命令2
  13. [js高手之路]html5 canvas教程 - 1px问题以及绘制坐标系网格
  14. 微信小程序支付+php后端
  15. HttpServletResponse对象(一)
  16. http://blog.csdn.net/ym19860303/article/details/8462450
  17. apt-get update 和 upgrade 的区别
  18. Spring 基于xml配置方式的AOP
  19. BZOJ3144:[HNOI2013]切糕——题解
  20. 关于打包后提示无法连接到mongodb的情况

热门文章

  1. 【动态域名解析工具】tunnel,国内版的ngrok,花生壳可以睡觉了
  2. 通向高可扩展性之路(WhatsApp篇)---- 脸书花了190亿买来的WhatsApp的架构
  3. 360demo--关于WM_GETMINMAXINFO
  4. 深入理解Java:注解(Annotation)自定义注解入门
  5. Windows下Php安装mongodb扩展失败
  6. ASP.NET 返回字符串 IE6乱码问题
  7. Java学习之ConcurrentHashMap实现一个本地缓存
  8. 【BZOJ 4104】【Thu Summer Camp 2015】解密运算
  9. Java 日期比较以及得到前后一天
  10. Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)