HDU-1233 还是畅通工程(最小生成树Prim算法)
来源:互联网 发布:idea创建web项目ubuntu 编辑:程序博客网 时间:2024/04/26 01:24
还是畅通工程
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 48819 Accepted Submission(s): 22279
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
思路:简单的Prim算法,模板题
#include<iostream>#define maxn 110using namespace std;const int INF=0x3f3f3f3f;int graph[maxn][maxn];int prim(int graph[][maxn], int n) { int lowcost[maxn]; int mst[maxn]; int i, j, min, minid, sum = 0; for (i = 2; i <= n; i++) { lowcost[i] = graph[1][i]; mst[i] = 1; } mst[1] = 0; for (i = 2; i <= n; i++) { min = INF; minid = 0; for (j = 2; j <= n; j++) { if (lowcost[j] < min && lowcost[j] != 0) { min = lowcost[j]; minid = j; } } sum += min; lowcost[minid] = 0; for (j = 2; j <= n; j++) { if (graph[minid][j] < lowcost[j]) { lowcost[j] = graph[minid][j]; mst[j] = minid; } } } return sum; }int main(void){ int n,m,i,j,k,cost; while(cin>>n&&n) { for(i=1;i<maxn;i++) for(j=1;j<maxn;j++) graph[i][j]=INF; for(k=0;k<n*(n-1)/2;k++) { cin>>i>>j>>cost; graph[i][j]=graph[j][i]=cost; } int ans=prim(graph,n); cout<<ans<<endl; }}
阅读全文
0 0
- hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)
- HDU-1233 还是畅通工程(最小生成树Prim算法)
- hdu-1233-还是畅通工程(最小生成树,prim算法)
- hdu 1233 还是畅通工程(Prim最小生成树)
- hdu 1233 还是畅通工程--最小生成树prim
- HDU 1233 还是畅通工程---prim求最小生成树
- hdu 1233 还是畅通工程(最小生成树prim)
- hdu 1233 还是畅通工程 最小生成树prim
- HDU 1233 还是畅通工程 (最小生成树Prim)
- hdu1233 还是畅通工程(最小生成树 prim 算法)
- HDU 1233 还是畅通工程【最小生成树入门题,Kruskal算法+Prim算法】
- HDU 1233 还是畅通工程 最小生成树Kruskal算法和prim算法
- hdu 还是畅通工程 (基础)(最小生成树)(Prim算法 && Kruskal算法)
- HDU 1233-还是畅通工程(经典的最小生成树, Kruskal和prim算法)
- HDU 1863 畅通工程(最小生成树prim算法)
- HDU - 1863 - 畅通工程 (最小生成树!!prim算法!!)
- HDU--1233:还是畅通工程 (并查集 & 最小生成树Prim)
- HDU 1233 还是畅通工程(Prim求最小生成树)
- Sqlite数据库添加数据以及查询数据方法
- Hadoop本地库
- Start Failed Android studio
- m-ary Partitions
- Double Queue POJ
- HDU-1233 还是畅通工程(最小生成树Prim算法)
- selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)
- java前奏
- 字符串截取
- Mac下使用Eclipse编译C/C++文件出现 launch failed, binary not found 解决方案
- 将ajax请求封装为一个对象(原生js)
- Andriod 出现SIGILL 异常
- springmvc 请求400 bad request(授之以鱼不如授之以渔,使用firebug找错)
- PAT 乙级 1004