zoukankan      html  css  js  c++  java
  • 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 }
     
    功不成,身已退
  • 相关阅读:
    C# 用this修饰符为原始类型扩展方法
    windows7命令行终端获取管理员模式随笔
    C语言---斐波那契问题
    C语言--pow()函数实现
    数组排序之选择排序
    求数组逆置(数组与指针实现)
    字符串函数之Strtok()函数
    for循环的灵活性
    C语言--isspace()函数实现
    异构无线网络之QOS简介
  • 原文地址:https://www.cnblogs.com/dongsheng/p/2571472.html
Copyright © 2011-2022 走看看