zoukankan      html  css  js  c++  java
  • poj 1258 AgriNet

    poj 1258 Agri-Net
    //poj 1258 Agri-Net
    //最小生成树(MST)
    
    #include <stdio.h>
    #include <string.h>
    
    #define N 105
    #define INF 1<<30
    
    int n;
    int map[N][N], dis[N], ans;
    bool vis[N];
    
    void prim()
    {
        for(int i = 0; i < n; ++i)
        {
            dis[i] = INF;
            vis[i] = false;
        }
        dis[0] = 0;
        while(1)
        {
            int min = INF, index = -1;
            for(int i = 0; i < n; ++i)
            {
                if(vis[i] == false && min > dis[i])
                {
                    min = dis[i];
                    index = i;
                }
            }
            if(index == -1)
                return;
            vis[index] = true;
    
            ans += min;
    
            for(int i = 0; i < n; ++i)
                if(vis[i] == false && dis[i] > map[index][i])
                    dis[i] = map[index][i];
        }
    }
    
    int main()
    {
        while(scanf("%d", &n) != EOF)
        {
            ans = 0;
            memset(map, 0, sizeof(map));
            for(int i = 0; i < n; ++i)
            {
                for(int j = 0; j < n; ++j)
                {
                    scanf("%d", &map[i][j]);
                    map[j][i] = map[i][j];
                }
            }
            prim();
            printf("%d\n", ans);
        }
        return 0;
    }
  • 相关阅读:
    函数、对象
    webpack配置
    创智培训内容
    oracle方法
    Weblogic
    药店
    ip
    jdk账号
    ansible
    目录编码
  • 原文地址:https://www.cnblogs.com/gabo/p/2580461.html
Copyright © 2011-2022 走看看