zoukankan      html  css  js  c++  java
  • Electrification Plan(最小生成树)

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=50#problem/D

    最小生成树模板,注意的是这里有k个发电站,它们不再需要连接其他的发电站,所以任何两个发电站之间的权值是0;

     1 #include<stdio.h>
     2 #include<string.h>
     3 const int maxn = 110;
     4 const int INF = 0x3f3f3f3f;
     5 int map[maxn][maxn],power[maxn];
     6 int n,k;
     7 
     8 void prim()
     9 {
    10     int dis[maxn],vis[maxn];
    11     int ans = 0;
    12     memset(vis,0,sizeof(vis));
    13     for(int i = 1; i <= n; i++)
    14         dis[i] = map[1][i];
    15     vis[1] = 1;
    16 
    17     for(int i = 1; i <= n-1; i++)
    18     {
    19         int min = INF,pos;
    20 
    21         for(int j = 1; j <= n; j++)
    22         {
    23             if(!vis[j] && dis[j] < min)
    24             {
    25                 min = dis[j];
    26                 pos = j;
    27             }
    28         }
    29         vis[pos] = 1;
    30         ans += min;
    31         for(int j =1; j <= n; j++)
    32         {
    33             if(!vis[j] && dis[j] > map[pos][j])
    34                 dis[j] = map[pos][j];
    35         }
    36     }
    37     printf("%d
    ",ans);
    38 }
    39 
    40 int main()
    41 {
    42     scanf("%d %d",&n,&k);
    43 
    44     /*for(int i = 1; i <= n; i++)
    45         for(int j = 1; j <= n; j++)
    46         {
    47             if(i != j)
    48                 map[i][j] = INF;
    49             else map[i][j] = 0;
    50         }*/
    51     memset(power,0,sizeof(power));
    52     int x;
    53 
    54     for(int i = 0; i < k; i++)
    55     {
    56         scanf("%d",&x);
    57         power[x] = 1;
    58     }
    59 
    60     for(int i = 1; i <= n; i++)
    61     {
    62         for(int j = 1; j <= n; j++)
    63             scanf("%d",&map[i][j]);
    64     }
    65 
    66     for(int i = 1; i <= n; i++)
    67     {
    68         for(int j = 1; j <= n; j++)
    69         {
    70             if(power[i] && power[j])
    71                 map[i][j] = 0;
    72         }
    73     }
    74     prim();
    75     return 0;
    76 }
    View Code
  • 相关阅读:
    优化MyBatis配置文件中的配置
    Java多线程---同步与锁
    Runtime.getRuntime().exec()
    java ---线程wait/notify/sleep/yield/join
    redis配置详情
    httpcline
    线程
    Bootstrap学习(一)
    springmvc注解配置
    salesforce上上传和导出.csv格式文件
  • 原文地址:https://www.cnblogs.com/LK1994/p/3451309.html
Copyright © 2011-2022 走看看