PAT-A1034
来源:互联网 发布:淘宝服装店铺文案 编辑:程序博客网 时间:2024/04/30 08:33
#include<stdio.h>#include<iostream>#include<string>#include<map>using namespace std;int n, k, num_person=0;bool visited[3002]={false};int weight[3002]={0}, G[3002][3002]={0};map<string,int> string_to_int;map<int, string> int_to_string;map<string, int> gang;int change(string cc){if(string_to_int.find(cc)!=string_to_int.end())return string_to_int[cc];else{string_to_int[cc]=num_person;int_to_string[num_person]=cc;num_person++;return num_person-1;}}void DFS(int now, int &head, int &num, int &total_weight){num++;visited[now]=true;if(weight[now]>weight[head])head=now;for(int i=0;i<num_person;i++){if(G[now][i]>0){total_weight+=G[now][i];G[i][now]=G[now][i]=0;if(!visited[i])DFS(i,head,num,total_weight);}}}void DFSTrave(){for(int i=0;i<num_person;i++){if(!visited[i]){int head=i, num=0, total_weight=0;DFS(i,head,num,total_weight); if(num>2&&total_weight>k)gang[int_to_string[head]]=num;}}}int main(){int i, w, id1, id2;string aa, bb;cin>>n>>k;for(i=0;i<n;i++){cin>>aa>>bb>>w;id1=change(aa);id2=change(bb);G[id1][id2]+=w; G[id2][id1]+=w;weight[id1]+=w; weight[id2]+=w;}DFSTrave();printf("%d\n",gang.size());for(map<string, int>::iterator it=gang.begin();it!=gang.end();it++){cout<<it->first<<" "<<it->second<<endl;}return 0;}
0 0
- PAT-A1034
- PAT a1034题解
- PAT A1034. Head of a Gang (30)
- pat-a1034. Head of a Gang (30)
- PAT [A1034]-Head of a Gang
- A1034. 孪生素数对
- Tsinsen 清橙 A1034. 孪生素数对
- A1034. Head of a Gang (30)
- 刷清橙OJ--A1034.孪生素数对
- pat
- 【PAT】
- PAT
- PAT
- PAT
- PAT
- PAT
- PAT
- PAT
- 修改nginx运行端口
- ACM前奏模板
- 给程序员最好的18个忠告!
- 微信网页开发--分享接口
- PAT-A1032
- PAT-A1034
- 基于JQuery的井字过三关游戏(玩家与AI对战)
- Central Processing Unit及集成电路
- PAT-A1035
- iOS星级评价效果
- Java中常用的集合小结
- Mac 修改host
- PAT-A1036
- Activity-Fragment存储与返回