zoukankan      html  css  js  c++  java
  • poj 1258 Agri-Net 解题报告

    题目链接:http://poj.org/problem?id=1258

    题目意思:给出 n 个 farm,每个farm 之间通过一定数量的fiber 相连,问使得所有farm 直接或间接连通的 最少 fiber 数是多少。

         赤裸裸的最小生成树,用prim做的。

         有个地方写错,wa 了 几次。

        

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 
     5 const int farm_num = 10000 + 10;
     6 const int INF = 1e9;
     7 int farm[farm_num][farm_num];
     8 int dist[farm_num], vis[farm_num];
     9 int ans, N;
    10 
    11 void prim()
    12 {
    13     int k;
    14     for (int i = 1; i <= N; i++)
    15     {
    16         vis[i] = 0;
    17         dist[i] = INF;
    18     }
    19     // 假设从编号为 1 的farm 出发
    20     dist[1] = 0, ans = 0;
    21     for (int i = 1; i <= N; i++)
    22     {
    23         int tmp = INF;
    24         for (int j = 1; j <= N; j++)
    25         {
    26             if (!vis[j] && dist[j] < tmp)
    27             {
    28                 tmp = dist[j];
    29                 k = j;
    30             }
    31         }
    32         vis[k] = 1;
    33         ans += tmp;
    34         for (int j = 1; j <= N; j++)
    35         {
    36             if (!vis[j] && dist[j] > farm[k][j])  // 一开始将dist[j] > farm[k][j]直接写成farm[k][j]了= =
    37                 dist[j] = farm[k][j];
    38         }
    39     }
    40 }
    41 
    42 int main()
    43 {
    44     while (scanf("%d", &N) != EOF)
    45     {
    46         for (int i = 1; i <= N; i++)
    47         {
    48             for (int j = 1; j <= N; j++)
    49                 scanf("%d", &farm[i][j]);
    50         }
    51         prim();
    52         printf("%d
    ", ans);
    53     }
    54     return 0;
    55 }

        

  • 相关阅读:
    数据库 数据库编程二
    Linux 退格键不回显
    数据库 数据库编程一
    数据库 SQL语法二
    数据库 SQL语法一
    数据库 Linux下的MySQL数据库管理
    docker-compose
    winodws同步时间命令
    国内yum源的安装(163,阿里云,epel)
    postgresql双机热备、高可用方案(采用pacemaker+corosync实现)
  • 原文地址:https://www.cnblogs.com/windysai/p/3915736.html
Copyright © 2011-2022 走看看