• Agri-Net


    http://poj.org/problem?id=1258

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #define MAXN 110
     5 
     6 const int INF=1<<28;
     7 using namespace std;
     8 int g[MAXN][MAXN];
     9 int dis[MAXN];
    10 bool vis[MAXN];
    11 int n,sum;
    12 bool sprim()
    13 {
    14     memset(vis,false,sizeof(vis));
    15     for(int i=1;i<=n;i++)
    16         dis[i]=INF;
    17     dis[1]=0;sum=0;
    18     for(int i=1;i<=n;i++)
    19     {
    20         int min=INF,k=0;
    21         for(int j=1;j<=n;j++)
    22         {
    23             if(!vis[j]&&dis[j]<min)
    24             {
    25                 min=dis[j];
    26                 k=j;
    27             }
    28         }
    29         if(min==INF) return false;
    30         vis[k]=true;
    31         sum+=min;
    32         for(int j=1;j<=n;j++)
    33         {
    34             if(!vis[j]&&dis[j]>g[k][j])
    35             {
    36                 dis[j]=g[k][j];
    37             }
    38         }
    39     }
    40     printf("%d
    ",sum);
    41     return true;
    42 }
    43 int main()
    44 {
    45     while(scanf("%d",&n)!=EOF){
    46 
    47        for(int i=1;i<=n;i++)
    48        {
    49            for(int j=1;j<=n;j++)
    50            {
    51                scanf("%d",&g[i][j]);
    52            }
    53        }
    54        sprim();
    55     }
    56     return 0;
    57 
    58 }
    View Code
  • 相关阅读:
    HDU5873
    HDU5874
    HDU1565(状态压缩dp)
    POJ2774(二分+哈希)
    HDU4474
    HDU2602(背包)
    单链表
    POJ2503(hash)
    POJ1200(hash)
    顺序表
  • 原文地址:https://www.cnblogs.com/fanminghui/p/3244972.html
Copyright © 2020-2023  润新知