畅通工程

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 17539    Accepted Submission(s): 7388

Problem Description
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。
 
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 ?
prim算法:
#include <stdio.h> #include <string.h> #include <stdlib.h> #define inf 999999 int ma[110][110]; int vis[110]; int dis[110]; int n,m,sum; int prim() {     int i,j;     int pos;     memset(vis,0,sizeof(vis));     for(i=1; i<=n; i++)     {         dis[i]=ma[1][i];     }     vis[1]=1;     for(i=1; i<n; i++)     {         int min=inf;         for(j=1; j<=n; j++)         {             if(!vis[j]&&dis[j]<min)             {                 min=dis[j];                 pos=j;             }         }         if(min>=inf)//表示不能连通             return 0;         sum+=min;         vis[pos]=1;         for(j=1; j<=n; j++)         {             if(!vis[j]&&ma[pos][j]<dis[j])                 dis[j]=ma[pos][j];         }     }     return 1;//若返回值为1,则证明此组统计数据能够连通 } int main() {     int i,j;     int x,y,z;     while(scanf("%d %d",&m,&n),m)     {         for(i=1; i<=n; i++)         {             for(j=1; j<=n; j++)             {                 ma[i][j]=inf;                 if(i==j)                     ma[i][j]=0;             }         }         for(i=0; i<m; i++)         {             scanf("%d %d %d",&x,&y,&z);             if(ma[x][y]>z)             {                 ma[x][y]=z;                 ma[y][x]=z;             }         }         sum=0;         if(prim()==1)             printf("%d\n",sum);         else             printf("?\n");     }     return 0; }

转载于:https://www.cnblogs.com/jiangyongy/p/3971644.html

【1863】畅通工程 (HDU)相关推荐

  1. 畅通工程 hdu 1232 HDU - 1863 (并查集+最小生成树)

    畅通工程hdu 1232 并查集 Problem Description Input Output 参考代码 HDU - 1863 Problem Description Input Output 参 ...

  2. HDU 1863 畅通工程

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

  3. 畅通工程 HDU - 1863

    省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路的若干条道 ...

  4. HDU 1863畅通工程(最小生成树)(prim算法)

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

  5. 畅通工程 HDU - 1233 

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...

  6. 杭电1863畅通工程

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

  7. HDOJ:1863畅通工程

    题目大意:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可能建设公路 ...

  8. HDU——1863 畅通工程(最小生成树问题)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 题意:有m个村庄,还给出了n条道路的具体信息.问你能否使m个村庄畅通,且最小花费是多少? 解题思 ...

  9. HDU 1863 畅通工程 最小生成树

    思路: 比较典型的最小生成树的题目了..在这里用求最小生成树的经典算法K(Kruskal)算法和P(Prim)算法.我的 K 算法用的是结构体来存图,P 算法用的是邻接矩阵来存图,K算法的复杂度是O( ...

  10. HDOJ 1863畅通工程(最小生成树kruskal算法并查集实现)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1863 最小生成树kruskal算法:http://www.zhuoda.org/irini/78592.h ...

最新文章

  1. 谷歌浏览器同步功能无法加载_谷歌浏览器Chrome 86正式发布,全新重磅功能上线——密码检查...
  2. 【CodeForces】914 E. Palindromes in a Tree 点分治
  3. BufferedInputStream 缓冲区原理解析
  4. 在腾讯云轻量云服务器上搭建mysql数据库
  5. java中treemap释放_在Java中从TreeMap删除键
  6. java 开发人员工具_每个Java开发人员都应该知道的10个基本工具
  7. 一周试用yii开发一个带各种该有功能的web程序(二)
  8. php开源qq群,QQ群免IDKEY加群PHP源码
  9. numpy缩放图片/调整图片大小
  10. ATTCK实战系列(二)琢磨篇
  11. 云朵怎么画好看?超简单的天空上色教程
  12. 计算机备份应用程序无法启动,由于内部错误,备份应用程序无法启动如何解决-解决“由于内部错误,备份应用程序无法启动”的方法 - 河东软件园...
  13. python爬取虎扑评论_python爬取网站数据
  14. iPad越狱失败 越狱恢复
  15. 网络安全标准实践指南—远程办公安全防护
  16. js 代码 摘录收集贴
  17. 中国历史年代尺-夏商至民国
  18. 再见吧USB!无线激光一体机好价精选
  19. Ubuntu18.04 安装Eclipse搭建C语言开发环境
  20. 初学者易懂回文类型判断

热门文章

  1. 百度嵌入式深度学习框架Paddle-Mobile介绍
  2. 单线程和多线程的优缺点(转)
  3. 通过脚本案例学习shell(二) --- 通过线性显示/etc/passwd内容了解while read用法
  4. 订单可视化(智能制造、流程再造、企业信息化) 第一篇 缘起
  5. C/C++-标准输入/输出重定向为文件输入/输出
  6. Linux多线程编程----IO【select、poll、epoll】
  7. 基于角色的权限设计(二)
  8. uva 657 The die is cast
  9. Virtual Lab. For Probability and Statistics
  10. BlogEngine 1.0中的编码问题及解决方案