zoukankan      html  css  js  c++  java
  • poj 1258 农场网络 最小生成树

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

    Sample Input
    
    4
    0 4 9 21
    4 0 8 17
    9 8 0 16
    21 17 16 0
    Sample Output
    
    28

    解答


    根据题目的输入格式 还是使用prim比较好

    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <memory.h>
    using namespace std;
    
    /*
    4
    0 4 9 21
    4 0 8 17
    9 8 0 16
    21 17 16 0
    */
    
    const int N = 510;
    const int INF = 0x3f3f3f3f;
    int g[N][N];
    int dist[N];
    int st[N];
    
    int n;
    
    int prim()
    {
        memset(dist, 0x3f, sizeof dist);
        int res = 0;
        for (int i = 0; i < n; i++) {
            int t = -1;
            for (int j = 1; j <= n; j++) {
                if (st[j] == 0 && (-1 == t || dist[t] > dist[j])) {
                    t = j;
                }
            }
    
            if (i && dist[t] == INF) return INF;
            if (i) res += dist[t];
            st[t] = true;
    
            for (int j = 1; j <= n; j++) dist[j] = min(dist[j], g[t][j]);
        }
    
        return res;
    }
    
    
    int main()
    {
        while (scanf("%d", &n) != EOF)
        {
            memset(g, 0x3f, sizeof g);
            memset(st, 0, sizeof(st));
            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= n; j++) {
                    scanf("%d",&g[i][j]);
                }
            }
    
            printf("%d
    ", prim());
        }
    
    
        return 0;
    }
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    题解——草莓(树上切割)
    题解——碰杯
    SCOI2019凉凉记
    题解rotinv
    矩阵快速幂
    质数及线性筛
    题解[ZJOI2007]矩阵游戏
    【实验舱国庆营模拟】Day3 A.code
    【实验舱国庆营模拟】Day2 A.divide
    【纪中集训2019.08.25】【JZOJ6371】树
  • 原文地址:https://www.cnblogs.com/itdef/p/13162364.html
Copyright © 2011-2022 走看看