• POJ2421 & HDU1102 Constructing Roads(最小生成树)


      嘎唔!~又一次POJ过了HDU错了。。。不禁让我想起前两天的的Is it a tree?   orz。。这次竟然错在HDU一定要是多组数据输入输出!(无力吐槽TT)。。题目很简单,炒鸡水!

    题意:

    告诉你每个村庄之间的距离,和几组已经联通的村庄,求使所有村庄联通所要建的道路的最短距离。

    很简单,用最小生成树的Prim算法,相当于邻接矩阵已知,把已联通的村庄之间的距离改为零即可。

    附上AC代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 #define infinity 1000001
     5 #include<iostream>
     6 #include<algorithm>
     7 using namespace std;
     8 int G[101][101];
     9 int lowcost[101];
    10 int used[101];
    11 int prim(int vcount)
    12 {
    13     int sum=0;
    14     int i,j,k;
    15     int min;
    16     for (i=0; i<vcount; i++)
    17     {
    18         lowcost[i]=G[0][i];
    19         used[i]=0;
    20     }
    21     used[0]=1;
    22     for (i=1; i<=vcount-1; i++)
    23     {
    24         j=0;
    25         min = infinity;
    26         for (k=1; k<vcount; k++)
    27             if ((!used[k])&&(lowcost[k]<min))
    28             {
    29                 min =  lowcost[k];
    30                 j=k;
    31             }
    32         used[j]=1;
    33         sum+=min;
    34         for (k=1; k<vcount; k++)
    35             if (!used[k]&&(G[j][k]<lowcost[k]))
    36             {
    37                 lowcost[k]=G[j][k];
    38             }
    39     }
    40     return sum;
    41 }
    42 int main()
    43 {
    44     int i,j;
    45     int sum,n,q,a,b;
    46     while(scanf("%d",&n)!=EOF)
    47     {
    48         for(i=0; i<n; i++)
    49         {
    50             for(j=0; j<n; j++)
    51             {
    52                 scanf("%d",&G[i][j]);
    53             }
    54         }
    55         scanf("%d",&q);
    56         for(i=0; i<q; i++)
    57         {
    58             scanf("%d%d",&a,&b);
    59             G[a-1][b-1]=G[b-1][a-1]=0;
    60         }
    61         sum=prim(n);
    62         printf("%d
    ",sum);
    63     }
    64     return 0;
    65 }

                                                             ————Anonymous.PJQ

    ————Anonymous.PJQ
  • 相关阅读:
    Centos7yum安装LNMP
    CentOS7安装和配置rsync+inotify
    SSH
    nginx https
    nginx rewrite
    nginx代理缓存
    nginx动静分离
    Centos7使用squid实现正向代理
    利用tengine的nginx_upstream_check_module来检测后端服务状态
    nginx基于tcp负载均衡
  • 原文地址:https://www.cnblogs.com/PJQOOO/p/3857219.html
Copyright © 2020-2023  润新知