畅通project

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 16309    Accepted Submission(s): 6795

Problem Description
省政府“畅通project”的目标是使全省不论什么两个村庄间都能够实现公路交通(但不一定有直接的公路相连。仅仅要能间接通过公路可达就可以)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编敲代码,计算出全省畅通须要的最低成本。

Input
測试输入包括若干測试用例。

每一个測试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N


行相应村庄间道路的成本。每行给出一对正整数,各自是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。

为简单起见。村庄从1到M编号。当N为0时。所有输入结束。相应的结果不要输出。

Output
对每一个測试用例,在1行里输出全省畅通须要的最低成本。

若统计数据不足以保证畅通。则输出“?”。

Sample Input
3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100
Sample Output
3
?

这几道与畅通project有关的题目都非常像

代码:

#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 M)



 int i = 0 ,j = 0 ;

 int c = 0 ; 

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

 dis[1] = 0 ;

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

 {

  int min = INF ;

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

  {

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

   {

    min = dis[j] ;

    c = j ;

   }

  }

  used[c] = 1 ;

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

  {

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

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

  }

 }

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

 {

  if(dis[i] == INF)

  {

   sum = INF ;

   break ;

  }

  sum += dis[i] ;

 }

 if(sum != INF)

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

 else

  printf("?

\n");

}

int main()

{

 int N = 0 , M = 0;

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

 {

  if(N == 0)

   break ;

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

  int i = 0 , j = 0 ;

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

  {

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

    map[i][j] = INF ;

      dis[i] = INF ;

      used[i] = 0 ;

  }

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

  {

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

   //推断是否会有重边

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

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

  }

  Prim( M ) ;

 }

 return 0 ;

}

杭电1863 畅通project的更多相关文章

  1. 杭电1874畅通project绪

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

  2. 杭电1232畅通project

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

  3. 畅通project(杭电1863)

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

  4. HDU 1863 畅通project (最小生成树是否存在)

    题意 中文 入门最小生成树  prim大法好 #include<cstdio> #include<cstring> using namespace std; const int ...

  5. hdu 1863 畅通project kruskal || prim

    简单最小生成树,畅通project.这三道题目都是练习最小生成树的. 注意一下推断是否有通路时,kruskal能够推断每一个点的祖先是否同样.prim能够推断每一个点是否都加进集合里面了,也就是说是否 ...

  6. hdu 1863 畅通project

    #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm& ...

  7. 杭电1233还是畅通project

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

  8. 畅通project(杭电1232)

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

  9. 杭电1879继续畅通project

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

随机推荐

  1. python爬虫基础03-requests库

    优雅到骨子里的Requests 本文地址:https://www.jianshu.com/p/678489e022c8 简介 上一篇文章介绍了Python的网络请求库urllib和urllib3的使用 ...

  2. (转)在Xcode 7上直接使用Clang Address Sanitizer

    原文地址: http://www.cocoachina.com/ios/20150730/12830.html WWDC 2015上,除了Swift 2.0外,还有一个令人激动的消息:可以直接在Xco ...

  3. cdev结构体

    在内核源码include/linux/cdev.h里对cdev结构体的定义: struct cdev { struct kobject kobj; // 内嵌的kobject对象  struct mo ...

  4. cocos2d心得关于精灵帧缓存

    在cocos2d中,精灵帧缓存CCSpriteFrameCache是用来存储精灵帧的.它没有特别的属性,只存储了一些用来管理CCSpriteFrame的方法. 以一个例子来说明,一般在又纹理图集的程序 ...

  5. CentOS 7.0:搭建SVN服务器

    1. 通过 yum install subversion来安装 2. 提示已经安装.查看svn版本 第二步: 创建svn版本库 第三步: 配置svn信息 2. 配置权限配置文件authz 3. 配置用 ...

  6. python基础——16(re模块,内存管理)

    一.内存管理 1.垃圾回收机制 不能被程序访问到的数据,就称之为垃圾. 1.1.引用计数 引用计数是用来记录值的内存地址被记录的次数的. 每一次对值地址的引用都使该值的引用计数+1:每一次对值地址的释 ...

  7. js/jquery判断浏览器 & 停止加载

    JS获取浏览器信息 复制代码代码如下: 浏览器代码名称:navigator.appCodeName浏览器名称:navigator.appName浏览器版本号:navigator.appVersion对 ...

  8. C/C++的类型安全

    类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域.“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制:有的时候也用“类型安全”形容 ...

  9. centos7中的网卡一致性命名规则、网卡重命名方法

    一致性网络设备命名(Consistent Network Device Naming) 背景介绍: 在centos5的时候,我们习惯了eth0这样的网络设备命名,在centos6发现网络设备变成了em ...

  10. Dialog共通写法(两个button)

    package jp.co.hyakujushibank.view import android.app.Dialogimport android.content.Contextimport andr ...