#include<cstdio>
#include<algorithm>
#include<iostream>
#include<vector>
#include<map>
#include<string>
using namespace std;
/*输入处理,输入n,k,接下来n行,将string转换成int,将点权累加,构建邻接矩阵,
编写change函数,使用map,若map当前没有此字符串,则加入,若有则直接返回对应的编号
遍历图,对每个块进行处理,若人数大于2,总权值大于k,将头目和对应的人数存到map中
如何遍历某个块并求出该块的总边权,总点权/2可以否?
*/
#define maxn 2020
int G[maxn][maxn]={0};
int n,k;
int index;
bool vis[maxn]={false};
int vpower[maxn]={0};
map<string,int>strtoint;
map<int,string>inttostr;
map<string,int>boss;
int change(string str)
{if(strtoint.find(str)==strtoint.end()){//不在map中inttostr[index]=str;return strtoint[str]=index++;}else{return strtoint[str];}
}
void DFS(int nowVisit,int &head,int &numMember,int &totalvalue)
{totalvalue+=vpower[nowVisit]/2;numMember++;if(vpower[nowVisit]>vpower[head]){head=nowVisit;}vis[nowVisit]=true;for(int i=0;i<index;i++){if(vis[i]==false&&G[nowVisit][i]!=0){DFS(i,head,numMember,totalvalue);}}
}
void DFSG()
{for(int i=0;i<index;i++){if(vis[i]==false){int head=i,numMember=0,totalvalue=0;DFS(i,head,numMember,totalvalue);if(numMember>2&&totalvalue>k){boss[inttostr[head]]=numMember;}}}
}
int main()
{scanf("%d %d",&n,&k);for(int i=0;i<n;i++){string str1,str2;int t;cin>>str1>>str2>>t;int m=change(str1);int n=change(str2);vpower[m]+=t;vpower[n]+=t;G[m][n]+=t;G[n][m]+=t;}DFSG();if(boss.size()==0){printf("0\n");}else{printf("%d\n",boss.size());for(map<string,int>::iterator it=boss.begin();it!=boss.end();it++){cout<<it->first<<' '<<it->second<<endl;}}}

PAT A 1034相关推荐

  1. Centos6.5 配置  DRBD8.4.3

    废话不多说,现在开始: 1.2台虚拟机,Centos6.5系统,系统配置啥的都一样,能互相ping 通.把它们称为A和B. 2. A: server iptables stop             ...

  2. 利用Nagios + CloudWatch API 监控 Amazon 实例

    最近一直在用AWS的EC2做些项目,发现AWS里面的所有东西都有一个叫CloudWatch的在监控.不过问题这个东西做得实在有些简单,无法类似Nagios那样. 于是在网上找了一下发现在国外有一个用R ...

  3. 《C语言课程设计》一第3章 文 件 类

    第3章 文 件 类 文件可分为文本文件和二进制文件两种.文本文件可用来保存字符,文件中的字节是字符的编码,源文件是文本文件.二进制文件可用来保存可执行文件,文件中的字节是机器指令或数据编码. C语言程 ...

  4. 吴良超 融合 cnn+lstm

    吴良超 融合 cnn+lstm 链接 from keras.applications.vgg16 import VGG16 from keras.models import Sequential, M ...

  5. JSTL 及 tablibs 的简单介绍和配置方法

    JSTL 及 tablibs 的简单介绍和配置方法 jstl 简介 jstl 的全称就是jsp standard tag libraries, 就是jsp里的标准标签库. 引用jstl技术能在jsp种 ...

  6. 日本語趣味読み 一 星とり

    星とり ある夜のこと.お寺の庭で.小僧さんが.長い竹竿を.あっちこっち振り回りしておりました. 和尚さんがこれを見つけて. 「これこれ.そこで何をしているのじゃ.」 と聞きますと.小僧さんは. 「お空 ...

  7. Linux c 算法与数据结构--栈

    前段时间写了双向链表,现在写个栈,写之前,先简单介绍链表 队列 栈的区别: 链表,队列,堆栈的区别 1.栈是个有底的口袋,像袜子. 队列是没底的口袋,像通心粉. 所以:栈的特点是先进后出,队列的特点是 ...

  8. html彩色背景指令,HTML_第四章 颜色背景的CSS,本 章 C S S 的 主 - phpStudy...

    第四章 颜色背景的CSS 本 章 C S S 的 主 要 作 用 在前面的章节介绍完了声明与应用的方法及 一些特性之後,从这章开始,便要正式进入CSS的指令介绍了!本章有两个介绍的主 题,第一个部份介 ...

  9. linux 内存 virt,Linux 内存 virt res shr data swap 意义

    virt  res shr data 这几个很容易搞混了,写一下 首先解释下含义: virt : 程序占用的虚拟内存 man: The total amount of virtual memory u ...

  10. 中华人民共和国公安部令 第 82 号- 互联网安全保护技术措施规定

    中华人民共和国公安部令 http://www.gov.cn/gongbao/content/2006/content_421771.htm 第 82 号 <互联网安全保护技术措施规定>已经 ...

最新文章

  1. 单链表-两个线性表的合并(不破坏原链表+尾插法)
  2. 8.0强行转换后变成了7_【自学C#】|| 笔记 12 数据类型转换
  3. python os.walk()
  4. Redhat Enterprise linux 5 的安装
  5. 哈尔滨__伏尔加庄园
  6. python join()函数
  7. Iometer 性能测试:理论/应用性能测试
  8. node seneca_使用Node.js和Seneca编写国际象棋微服务,第3部分
  9. ssm中java实现树状结构_java ssm使用递归写树形结构
  10. Hibernate学习之一级缓存
  11. Unity独立游戏大集合
  12. 正版cs跳跃服务器,反恐精英 玩CS1.6跳跃服务器
  13. android 各版本介绍,Android的版本的介绍
  14. 漏刻有时云守护数据可视化画质感知状态迭代说明文档
  15. RecyclerView 刷新Item图片闪烁
  16. 腾讯新游侍魂上线,侍魂:胧月传说安卓模拟器电脑版详细教程
  17. 用计算机的画图工具画画,电脑绘画软件哪个好用?电脑绘画软件推荐
  18. 2021-11-12号-java面试题-北京
  19. 2021-07-03 DTS 驱动 rock1126 添加硬件ucam 驱动
  20. hdu4417:线段树单点更新区间求和,离线 Super Mario

热门文章

  1. Verilog仿真器
  2. java自动拼图_java 拼图游戏完整源码,图片剪切,包含拼图自动还原功能
  3. 联想服务器无限重启,联想台式机无限重启的解决方法
  4. (result, consumed) = self._buffer_decode(data, self.errors, final)报错
  5. 关于数据库、数据治理、AIOps的这些痛点,你需要知道! | DAMS 2020
  6. 使用文件保险箱加密 Mac 上的启动磁盘
  7. matlab gui双音拨号,用matlab GUI功能模拟DTMF拨号系统.doc
  8. mysqldb 安装包 linux,Linux下Python MySQLdb模块安装过程及错误解决
  9. 微信服务商分账思路剖析、设计流程及源码实现
  10. vue echarts结合高德地图