还是畅通project

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

Total Submission(s): 25177    Accepted Submission(s): 11174

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

这道题和继续畅通project是一样的,代码仅仅修改了一点点,注意题意中的N(N-1)/2,这个代表的是(N*(N-1))/2,而那道继续畅通project是N*((N-1)/2)

代码:

#include<stdio.h>

#include<string.h>

#include<math.h>

#define INF 1 << 30

int map[1001][1001] ;

int dis[1001] ;

int used[1001] ;

void Prim(int N)



 int i = 0 ,j = 0 ;

 int c = 0 ; 

 int sum = 0 ;//用来记录最后所须要的花费

 dis[1] = 0 ;

    for( i = 1 ; i <= N ; i++)

 {

  int min = INF ;

  for( j = 1 ; j <= N ; j++)

  {

            if(!used[j] && dis[j] < min)

   {

    min = dis[j] ;

    c = j ;

   }

  }

  used[c] = 1 ;

  for(j = 1 ; j <= N ; j++)

  {

   if(!used[j] && dis[j] > map[c][j])

    dis[j] = map[c][j] ;

  }

 }

    for(i = 1 ; i <= N ; i++)

  sum += dis[i] ;

 printf("%d\n",sum);

}

int main()

{

 int N = 0 ;

 while(~scanf("%d",&N))

 {

  if(N == 0)

   break ;

     int a = 0 , b = 0 , c = 0  ;

  int i = 0 , j = 0 ;

  for(i = 1 ; i <= N ; i++)

  {

   for(j = 1 ; j <= N ; j++)

    map[i][j] = INF ;

      dis[i] = INF ;

      used[i] = 0 ;

  }

  int m = 0 ;

  m = (N * (N-1)) / 2;

  for( i = 0 ; i < m ; i++)

  {

   scanf("%d%d%d" , &a , &b , &c );

   //推断是否会有重边

      if(map[a][b] > c)

      map[a][b] = map[b][a] = c ; 

  }

  Prim( N ) ;

 }

 return 0 ;

}

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

  1. 杭电1879继续畅通project

    继续畅通project Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

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

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

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

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

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

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

  5. hdu 1233 还是畅通project

    本题链接:点击打开链接 本题大意: 有n个村庄,n*(n-1)/2条路,输入每条路所连接是哪两个村庄及长度,求使全部村庄均连通(并不是都两两连通) 所铺公路的最短路程. 解题思路: 使用并查集基础及K ...

  6. 畅通project(杭电1863)

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

  7. 杭电1874畅通project绪

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

  8. 还是畅通project(杭州电1233)

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

  9. 畅通project(杭电1232)

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

随机推荐

  1. java该HashTable,HashMap和HashSet

    同一时候我们也对HashSet和HashMap的核心方法hashcode进行了具体解释,见<探索equals()和hashCode()方法>. 万事俱备,那么以下我们就对基于hash算法的 ...

  2. springmvc + excel代

    1.xml简介 <!-- excel use start --> <bean class="org.springframework.web.servlet.view.Bea ...

  3. [置顶] ffmpg简介以及用它实现音频视频合并(java)

    1.简介     FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转档.流功能. 2.下载     源代码 git://git.libav.org/libav.git     Windo ...

  4. jquery的attr禁用表单元素的方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. C# Windows Phone 8 WP8 , 文字超连结到网页 免打程式码,Xaml就搞定 ! !

    原文:C# Windows Phone 8 WP8 , 文字超连结到网页 免打程式码,Xaml就搞定 ! ! 一般我们在开发Windows Phone 8 APP ,有时会需要超连结连到其他的网页,但 ...

  6. javaweb学习总结(七)——HttpServletResponse对象(一)(转)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和响应,那我们 ...

  7. 【原创】leetCodeOj --- Word Ladder II 解题报告 (迄今为止最痛苦的一道题)

    原题地址: https://oj.leetcode.com/submissions/detail/19446353/ 题目内容: Given two words (start and end), an ...

  8. Perl中的单行凝视和多行凝视

    同其它大多数编程语言一样.Perl中的单行凝视也是#开头.比如: #print "Hello,World!"; 但多行凝视.不同的语言有不同的凝视方式,比方说: Java,C/C+ ...

  9. C语言中的static 具体分析

    google了近三页的关于C语言中static的内容,发现可用的信息非常少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的刚開始学习的人来说參考性不是非常大.所以,我这篇博文博採众 ...

  10. Timus 1777. Anindilyakwa 奇怪的问题计数

    The language of Australian aborigines anindilyakwa has no numerals. No anindilyakwa can say: "I ...