oj---pat----a1034. Head of a Gang (30)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oj---pat----a1034. Head of a Gang (30)相关的知识,希望对你有一定的参考价值。

待修改.

 

#include<cstdio>
#include<map>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
map<string,int> M;
struct Edge {
    int ida,idb;
    int weight;
}edge[100];
int time[1005];
struct boss{
    int sum;
    string name;
     boss(string _name,int _sum=0):sum(_sum),name(_name){} 
};

int root[1005];
int findroot(int x){
    if(root[x]==x)
        return x;
    else{
        int tmp=findroot(root[x]);
        root[x]=tmp;
        return tmp;
    }
}
int main(){
    int n;int th;int tmp;
    char str[10];
    string a;
    scanf("%d %d",&n,&th);
    for(int i=0;i<n;i++){
        root[i]=i;
    }
    for(int i=0;i<n;i++){
        root[i]=i;
    }
    int noden=0,edgen=0;
    for(int i=0;i<n;i++){
        scanf("%s",str);
        a=str;
        if(M.find(str)==M.end()){
            M[str]=noden++;
        }
        scanf("%s",str);
        if(M.find(str)==M.end()){
            M[str]=noden++;
        }
        scanf("%d",&tmp);
        edge[edgen].ida=M[a];
        edge[edgen].idb=M[str];
        edge[edgen++].weight=tmp;
        time[edge[edgen].ida]+=tmp; 
        time[edge[edgen].idb]+=tmp;
    }
    int hangcnt=0;

    for(int i=0;i<edgen;i++){
        int roota=findroot(edge[i].ida);
        int rootb=findroot(edge[i].idb);
        if(roota!=rootb){
            if(time[rootb]>=time[roota])
                root[roota]=rootb;
            else root[rootb]=roota;
        }
    }
    map<int,int> S;
    map<string,int>res; 
    int rootn;
    int tmpsum=0;
    vector<int> rootid;
    for(int i=0;i<noden;i++){
        if(S.find(i)==S.end()){
            int id=root[i];
            S[id]+=time[i];
            if(S[id]>th){
                //res[]=0;
            }
        }
    }
    
    
    return 0;
}

 

以上是关于oj---pat----a1034. Head of a Gang (30)的主要内容,如果未能解决你的问题,请参考以下文章

oj--pat--a1003

PAT 1034 Head of a Gang[难]

1034 Head of a Gang (30 分)

1034. Head of a Gang (30)

A1034. Head of a Gang

1034 Head of a Gang (30)(30 分)