• HDOJ1233 还是畅通工程


    还是畅通工程

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 13192    Accepted Submission(s): 6030


    Problem Description
    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
     
    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
    View Code
     1 #include<iostream>
     2 int map[101][101],visit[101],dis[101];
     3 
     4 int prim(int n)
     5 {
     6     int i,j,k,min,sum=0;
     7     memset(visit,0,sizeof(visit));
     8     for(i=1;i<=n;++i)
     9         dis[i]=map[1][i];
    10     visit[1]=1;
    11     for(i=1;i<n;++i)
    12     {
    13         k=1;
    14         min=0x7fffffff;
    15         for(j=1;j<=n;++j)
    16         {
    17             if(!visit[j]&&min>dis[j])
    18             {
    19                 min=dis[j];
    20                 k=j;
    21             }
    22         }
    23         visit[k]=1;
    24         sum+=min;
    25         for(j=1;j<=n;++j)
    26         {
    27             if(!visit[j]&&map[k][j]<dis[j])
    28                 dis[j]=map[k][j];
    29         }
    30     }
    31     return sum;
    32 }
    33 
    34 int main()
    35 {
    36     using namespace std;
    37     int n,s,e,d;
    38     while(cin>>n,n)
    39     {
    40         for(int i=1;i<=n*(n-1)/2;++i)
    41         {
    42             cin>>s>>e>>d;
    43             map[s][e]=map[e][s]=d;
    44         }
    45         cout<<prim(n)<<endl;
    46     }
    47     return 0;
    48 }
     
    功不成,身已退
  • 相关阅读:
    第三次博客作业
    多项式求导--三次作业小结
    Python实现批量修改文件名
    汉字编程 —— 第一次个人编程作业
    PAT甲级代码仓库
    谈谈自己 —— 第一次博客作业
    爬取豆瓣网图书TOP250的信息
    HDU1862
    HDU1408
    HDU1302
  • 原文地址:https://www.cnblogs.com/dongsheng/p/2571472.html
Copyright © 2020-2023  润新知