zoukankan      html  css  js  c++  java
  • 开始熟悉一下数据结构了

    最小生成树之prim

    代码

    poj1258
    #include<iostream>
    using namespace std;
    #include<cstring>
    #define Maxint 0x3f3f3f3f
    #define N 110
    int map[N][N],low[N],vis[N];
    int n;
    int prim()
    {
        int i,j,pos,min,result=0;
        memset(vis,0,sizeof(vis));
        vis[1]=1;
        pos=1;
        for(i=1;i<=n;i++){
            if(i!=pos)
                low[i]=map[pos][i];
        }
        for(i=1;i<n;i++){
            min=Maxint;
            for(j=1;j<=n;j++)
                if(vis[j]==0&&min>low[j]){
                    min=low[j];
                    pos=j;
                }
        result+=min;
            //cout<<result<<' ';
            vis[pos]=1;
            for(j=1;j<=n;j++)
                if(vis[j]==0&&low[j]>map[pos][j])
                    low[j]=map[pos][j];
        }
        return result;
    }
    int main()
    {
        int i,j,ans,v;
        while(cin>>n){
            memset(map,Maxint,sizeof(map));
            for(i=1;i<=n;i++){
                for(j=1;j<=n;j++){
                    cin>>v;
                    map[i][j]=map[j][i]=v;
                }
            }
            ans=prim();
            cout<<ans<<endl;
        }
        return 0;
    }

  • 相关阅读:
    神代码
    初读《代码大全》
    单词频度统计
    AFO
    bzoj4816: [Sdoi2017]数字表格
    bzoj4006: [JLOI2015]管道连接
    bzoj4774: 修路
    bzoj3209: 花神的数论题
    bzoj4521: [Cqoi2016]手机号码
    COGS2314. [HZOI 2015] Persistable Editor
  • 原文地址:https://www.cnblogs.com/ACWQYYY/p/4372051.html
Copyright © 2011-2022 走看看