zoukankan      html  css  js  c++  java
  • 【POJ 2485】Highways(Prim最小生成树)

    题目

    Prim算法:任选一个点,加入集合,找出和它最近的点,加入集合,然后用加入集合的点去更新其它点的最近距离......这题求最小生成树最大的边,于是每次更新一下最大边。

    #include <cstdio>
    #define max(x, y) ((x) > (y) ? (x) : (y))
    #define N 505
    int t, n, g[N][N], lowcost[N], used[N], ans;
    void prim(){
        for(int i = 1; i <= n; i++){
            lowcost[i] = g[1][i];
            used[i] = 0;
        }
        used[1] = 1;
        ans = 0;
        for(int i = 1; i <= n; i++){
            int j=1;
            while(used[j]) j++;
            for(int k = 1; k <= n; k++)
                if(!used[k] && lowcost[k] < lowcost[j])
                    j = k;
            ans = max(ans, lowcost[j]);
            used[j] = 1;
            for(int k = 1; k <= n; k++)
                if(!used[k] && g[j][k] < lowcost[k])
                    lowcost[k] = g[j][k];
        }
    }
    int main(){
        scanf("%d", &t);
        while(t--){
            scanf("%d", &n);
            for(int i = 1; i <= n; i++)
                for(int j = 1; j <= n; j++)
                    scanf("%d", &g[i][j]);
            prim();
            printf("%d
    ", ans);
        }
        return 0;
    }
      
  • 相关阅读:
    hdu 5146 Sequence
    hdu 1232 畅通工程
    hdu 1213 How Many Tables
    hdu 2822 Dogs
    hdu 1242 Rescue
    hdu 5101 Select
    hdu 1873 看病要排队
    hdu 5112 A Curious Matt
    hdu 5154 Harry and Magical Computer
    hdu 1548 A strange lift
  • 原文地址:https://www.cnblogs.com/flipped/p/5646025.html
Copyright © 2011-2022 走看看