zoukankan      html  css  js  c++  java
  • poj1251最小生成树

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <climits>
    #include <string>
    #include <iostream>
    #include <map>
    #include <cstdlib>
    #include <list>
    #include <set>
    #include <queue>
    #include <stack>
    
    using namespace std;
    int father[22222];
    int getfather(int x)
    {
        if(x!=father[x]) father[x]=getfather(father[x]);
            return father[x];
    }
    
    struct Node
    {
        int a;int b;int val;
    }node[111111];
    int cmp(const Node &a,const Node &b)
    {
        return a.val<b.val;
    }
    int main()
    {
        int n,m;
        while(cin>>n,n){
            int ans=0;
            int sum=0;
            for(int i=0;i<n;i++) father[i]=i;
            for(int i=0;i<n-1;i++){
                char c;cin>>c;int a=c-'A';
                cin>>m;
                for(int j=0;j<m;j++){
                    int val;
                    char d;cin>>d>>val;int b;;
                    b=d-'A';
                    node[ans].a=a;node[ans].b=b;node[ans].val=val;ans++; //cout<<a<<" "<<b<<endl;
                }
            }
            sort(node,node+ans,cmp);
          //  cout<<endl;
           // for(int i=0;i<ans;i++)
             //   printf("%d %d %d
    ",node[i].a,node[i].b,node[i].val);system("pause");
            for(int i=0;i<ans;i++){
                int fa=getfather(node[i].a);int fb=getfather(node[i].b);
                if(fa!=fb){
                    sum+=node[i].val;father[fa]=fb;
                }
            }
            cout<<sum<<endl;
        }
        return 0;
    }
  • 相关阅读:
    spring mvc poi excel
    select onchange事件的使用
    eclipse下svn的分支与合并指南
    jquery_final
    ListView
    资源的使用
    Notification
    单选
    复选框
    调试
  • 原文地址:https://www.cnblogs.com/yigexigua/p/3847445.html
Copyright © 2011-2022 走看看