zoukankan      html  css  js  c++  java
  • POJ 1251 Jungle Roads (prim)

    题目链接:http://poj.org/problem?id=1251

    //双向图
    //点的数量小,采用邻接矩阵 
    //最小生成树prim 
    #include<iostream>
    #include<cstring>
    #include<iomanip>
    #define INF 100000
    using namespace std;
    
    const int maxn=30;
    
    int dis[maxn];
    bool vis[maxn];
    int map[maxn][maxn];
    int sum,m,b,n;
    char a,a1;
    void prim()  
    {  
        int temp;  
        for(int i=1;i<=n;i++)  
        {  
            int cf=INF;  
            for(int j=1;j<=n;j++) 
            {
                if(!vis[j]&&dis[j]<cf)  
                {  
                    temp=j;  
                    cf=dis[j];  
                }        
            }
            if(cf==INF)  
                cf=0; 
            sum+=cf;  
            vis[temp]=true;  
            for(int j=1;j<=n;j++)  
                if(!vis[j]&&map[temp][j]<dis[j])  
                    dis[j]=map[temp][j];  
        }  
    }
    
    int main (){
    
        while(cin>>n&&n)
        {
            for(int i=0;i<30;i++)  
                for(int j=0;j<30;j++)  
                {  
                    map[i][j]=INF;  
                    vis[i]=false;  
                }  
    
                for(int i=2;i<=n;i++)  
                {  
                    cin>>a>>m;            
                    while(m--)  
                    {  
                        cin>>a1>>b;  
                        map[a-65+1][a1-65+1]=map[a1-65+1][a-65+1]=b;  
                    }  
                }  
    
                for(int i=1;i<=n;i++)    
                    dis[i]=map[i][1];      
                vis[1]=true;  
                sum=0;  
                prim();
                cout<<sum<<endl;
        }
        return 0;
    }
  • 相关阅读:
    如何访问到静态的文件,如jpg,js,css?
    内存定位
    虚拟机逃逸
    OpenGL
    测试
    unity3d
    磁力链接
    IDA脚本
    投屏神器
    扫二维码登录
  • 原文地址:https://www.cnblogs.com/neverchanje/p/3552449.html
Copyright © 2011-2022 走看看