• 【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;
    }
      
  • 相关阅读:
    websocket 工作原理
    Flask中的wtforms使用
    DBUtils
    Django模板语言与视图(view)
    Django之图书管理系统
    Django的安装创建与连接数据库
    pymyspl模块
    多表查询与索引
    表的关系与查询
    mysql的数据类型与表约束
  • 原文地址:https://www.cnblogs.com/flipped/p/5646025.html
Copyright © 2020-2023  润新知