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;
    }

  • 相关阅读:
    猴子选大王(约瑟夫环)
    centos 安装thrift
    KMP字符串匹配算法
    会话技术整理
    PHP数组整理版
    PHP基础知识6【系统内置函数--数组】
    PHP基础知识5【系统内置函数--字符串】
    PHP基础知识笔记4
    PHP基础知识笔记3
    PHP基础知识笔记2
  • 原文地址:https://www.cnblogs.com/ACWQYYY/p/4372051.html
Copyright © 2011-2022 走看看