HDU 还是畅通工程 -- 最小生成树prim
来源:互联网 发布:数据科学师的工作内容 编辑:程序博客网 时间:2024/06/07 10:06
还是畅通工程
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37791 Accepted Submission(s): 17024
Problem Description
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
当N为0时,输入结束,该用例不被处理。
Output
对每个测试用例,在1行里输出最小的公路总长度。
Sample Input
31 2 11 3 22 3 441 2 11 3 41 4 12 3 32 4 23 4 50
Sample Output
35
#include <stdio.h>#include <string.h>#include <algorithm>#define inf 0x3f3f3f3fusing namespace std;const int N = 1005;int map[N][N];int vis[N];int low[N];int m,n;int prim(){int i,j;memset(vis,0,sizeof(vis));for(i=1;i<=n;i++){if(i==1) low[i]=0;else low[i]=map[1][i];}vis[1]=1;int ans=0;for(i=2;i<=n;i++){int m=inf,t;for(j=1;j<=n;j++){if(!vis[j]&&low[j]<m){t=j;m=low[j];}}vis[t]=1;ans=ans+m;for(j=1;j<=n;j++){if(!vis[j]&&low[j]>map[t][j])low[j]=map[t][j];}}return ans;}int main(){int i,j;while(~scanf("%d",&n)){if(n==0)break;memset(map,inf,sizeof(map));for(i=1;i<=n*(n-1)/2;i++){int x,y,z;scanf("%d %d %d",&x,&y,&z);map[x][y]=min(map[x][y],z);map[y][x]=min(map[y][x],z);}printf("%d\n",prim());}return 0;}
0 0
- hdu 1233 还是畅通工程(Prim最小生成树)
- hdu 1233 还是畅通工程--最小生成树prim
- HDU 1233 还是畅通工程---prim求最小生成树
- hdu 1233 还是畅通工程(最小生成树prim)
- hdu 1233 还是畅通工程 最小生成树prim
- HDU 还是畅通工程 -- 最小生成树prim
- HDU 1233 还是畅通工程 (最小生成树Prim)
- hdu1233 还是畅通工程(最小生成树 prim 算法)
- Hud 1233 还是畅通工程[最小生成树Prim]
- HDU1233 还是畅通工程 【最小生成树Prim】
- HDOJ 1233 还是畅通工程 【最小生成树】+【prim】
- 最小生成树 prim hdu1233 还是畅通工程
- hdoj 1233 还是畅通工程【最小生成树 kruskal && prim】
- HDOJ 1233 还是畅通工程 最小生成树 kruskal && prim
- hdu1233还是畅通工程 最小生成树(prim或kruskal)
- 还是畅通工程(prim求最小生成树)
- hud1233还是畅通工程并 最小生成树 Prim算法
- HDOJ1233 还是畅通工程(最小生成树,prim算法)
- 写了 35 年代码的老程序员的最大遗憾
- 数据库表设计五大范式所解决的问题
- 最大子数列和
- 用viewpager实现图片轮播
- JavaScript正则表达式
- HDU 还是畅通工程 -- 最小生成树prim
- 动态规划 Problem M
- PullToRefreshListView的使用
- LeetCode-221.Maximal Square
- tableView单区刷新和单cell刷新
- IT人-不要一辈子靠技术生存
- maven pom.xml文件教程详解
- java集合
- android 之popupWindow 在指定位置上的显示