zoukankan      html  css  js  c++  java
  • QS Network ZOJ 1586 Prim

    这个题绝对的Prim,但是这题有个怪一点的地方,他的适配器要重复买,比如顶点A和B连了一条边,顶点B和C连了一条边,那么要买,两个B适配器,一个A和一个C适配器,我先理解错了,以为只要买一个B适配器就可以了,所以连测试数据都过不了。然后可以直接把两个适配器的价格算在这条边的权值上,反正总的要求是造价最低嘛。。。

    贴代码:

    View Code
     1 #include <cstdio>
     2 #define MAXN 1020
     3 int n;
     4 int sum;
     5 int lowcost[MAXN];
     6 int edge[MAXN][MAXN];
     7 void Prim()
     8 {
     9     int i,j;
    10     for(i=0; i<n; i++)
    11         lowcost[i] = edge[0][i];
    12     lowcost[0] = -1;
    13     for(i=1; i<n; i++)
    14     {
    15         int min = 1000000;
    16         int v;
    17         for(j= 0; j<n; j++)
    18         {
    19             if(lowcost[j] != -1 && lowcost[j] < min)
    20             {
    21                 v = j;
    22                 min = lowcost[j];
    23             }
    24         }
    25         sum += min;
    26         lowcost[v] = -1;
    27         for(j=0; j<n; j++)
    28         {
    29             if(lowcost[j] != -1 && edge[v][j] <lowcost[j])
    30                 lowcost[j] = edge[v][j];
    31         }
    32     }
    33     printf("%d\n",sum);
    34 }
    35 int main()
    36 {
    37 //    freopen("in.cpp","r",stdin);
    38     int t;
    39     scanf("%d",&t);
    40     while(t--)
    41     {
    42         int i,j;
    43         scanf("%d",&n);
    44         sum = 0;
    45         int cost[MAXN];
    46         for(i=0; i<n; i++)
    47             scanf("%d",&cost[i]);
    48         for(i=0; i<n; i++)
    49             for(j=0; j<n; j++)
    50             {
    51                 scanf("%d",&edge[i][j]);
    52                 edge[i][j] = edge[i][j] + cost[i]+cost[j];
    53             }
    54         Prim();
    55     }
    56     return 0;
    57 }
  • 相关阅读:
    Python课程第三天作业
    Python课程第一天作业
    centos7安装Jenkins
    搭建zookeeper+kafka集群
    redis在实践中的一些常见问题以及优化思路
    部署redis4.0-cluster
    redis哨兵架构的基础知识及部署和管理
    Redis主从复制
    部署Redis4.x单机版及配置RDB和AOF持久化
    xshell使用密钥登陆linux
  • 原文地址:https://www.cnblogs.com/allh123/p/2992325.html
Copyright © 2011-2022 走看看