zoukankan      html  css  js  c++  java
  • poj 1258 Agri-Net(最小生成树)

    #include<bits/stdc++.h>
    using namespace std;
    const int inf=1<<24;
    
    int main()
    {
        int n,i,j,k,e[50][50],u,v,w,low[50],ans;
        char s;
        while(~scanf("%d",&n))
        {
            if(n==0) break;
            memset(e,0,sizeof(e));
            getchar();
            for(i=0;i<n-1;i++)
            {
                scanf("%c %d",&s,&k);
                u=s-'A';
                for(j=0;j<k;j++)
                {
                    getchar();
                    scanf("%c %d",&s,&w);
                    v=s-'A';
                    e[u][v]=e[v][u]=w;
                }
                getchar();
            }
    
            for(i=0;i<n;i++)
                for(j=0;j<n;j++)
            {
                if(!e[i][j]) e[i][j]=inf;
            }
    
            for(i=0;i<n;i++)
            {
                low[i]=e[0][i];
            }
            low[0]=-1;
            ans=0;
            for(i=1;i<n;i++)
            {
                int t=inf;
                for(k=0;k<n;k++)
                {
                    if(low[k]!=-1&&low[k]<t)
                    {
                        t=low[k];
                        j=k;
                    }
                }
                ans+=t;
                low[j]=-1;
                for(k=0;k<n;k++)
                {
                    low[k]=min(e[j][k],low[k]);
                }
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    Windows XP中万能断点
    c#运算符 ?
    转神秘的程序员
    经典解决“线程间操作无效
    文件上传
    dowload.aspx
    mail
    js 正则
    新年快乐
    DataTable Compute
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7238383.html
Copyright © 2011-2022 走看看