问题描述
锦瑟年华谁与度 莫问情归处 只影向斜阳 剑吼西风 欲把春留驻
天涯芳草无归路 回首花无数 解语自销魂 弱袂萦春 尘缘不相误
......
在卡勒沃夫充满文学杀伤力的声音中,身处紫荆2号楼202B的四位远近高低各不同的室友纷纷回忆起了各自波澜起伏的过去,并对长在百草园,邻有百花谷的现状表达了各自的见解。
某Q:"...我小学就开窍了...她的父母说我很好,但是...今天又和北林的联系了..."
某X:"...差点就成了,结果到学校了...这个方法放假了我去对我的同桌用!..."
某W:"..."(千言万语不言中,有大量的故事等待考古)
某Z:"...为了来清华...咱们审美观不一样,不会抢..."
......
卡勒沃夫在这个不朽的夜话中搜集出了某人零散的历任女友资料,为了强迫某人将他出的题目的标程交出,现在卡勒沃夫需要一个能将这些零散信息整合起来的程序。伴随着雄壮委婉动人的音乐,身为程序设计快男(超女)的你降临了!卡勒沃夫正对着您做Orz状并请求着:"神牛啊~请施舍给我一段程序把~偶米头发~"。。

输入格式
第一行为一个不超过5的整数T,表示数据的组数。之后每组数据的一行为一个不超过100的整数n。之后n行每行有两个用单个空格隔开的字符串(每个字符串只有英文大小写字母,长度不超过10),为两位mm的名字。每行第一个mm先于第二个mm成为某人的女友。
在这里我们假装诅咒某人不会同时被两个或两个以上mm泡,某个mm抛弃了某人后不会再吃回头草,同时卡勒沃夫深邃的洞察力使得他收集到了充足的信息以确定某人女友的先后顺序。
在小数据组中出现的人物不超过13个

输出格式
输出T行,每行对应一组数据,并按照mm们从先到后成为某人女友的顺序输出她们的名字,各个名字间用一个空格隔开。
样例输入
2
2
RY Unknown
YSZ RY
3
tomorrow yestoday
tomorrow today
today yestoday

样例输出
YSZ RY Unknown
tomorrow today yestoday

分析:1.用girl映射到一组girl,为某个女孩映射到前面有哪些女孩
2.如果某个女孩前面没有女孩,并且没有被输出过,则输出当前女孩并标记,并且,将其从其他所有女孩的映射中擦除
3.重复2过程,直到所有女孩被输出~

#include <iostream>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
int main() {int k, n;cin >> k;while (k--) {string ans = "";cin >> n;map<string, set<string> > m;map<string, int> vis;for (int i = 0; i < n; i++) {string s1, s2;cin >> s1 >> s2;m[s1];m[s2].insert(s1);}while (1) {int check = 0;for (map<string, set<string> >::iterator i = m.begin(); i != m.end(); i++) {string girl = i->first;if (vis[girl] == 0 && m[girl].size() == 0) {check = 1;vis[girl] = 1;for (map<string, set<string> >::iterator j = m.begin(); j != m.end(); j++) {j->second.erase(girl);}ans = ans + girl + " ";break;}}if (check == 0) break;}cout << ans.substr(0, ans.length() - 1) << endl;}return 0;
}

蓝桥杯 ADV-14 算法提高 卡勒沃夫之弱水路三千(提高型)相关推荐

  1. 蓝桥杯 算法提高 卡勒沃夫之弱水路三千(提高型)

    算法提高 卡勒沃夫之弱水路三千(提高型) Description 锦瑟年华谁与度 莫问情归处 只影向斜阳 剑吼西风 欲把春留驻 天涯芳草无归路 回首花无数 解语自销魂 弱袂萦春 尘缘不相误 - 在卡勒 ...

  2. JakeLin-[蓝桥杯]卡勒沃夫之弱水路三千(提高型)-拓扑排序-题解

    题目描述 锦瑟年华谁与度  莫问情归处  只影向斜阳  剑吼西风  欲把春留驻  天涯芳草无归路  回首花无数  解语自销魂  弱袂萦春  尘缘不相误  ......  在卡勒沃夫充满文学杀伤力的声音 ...

  3. [蓝桥杯]测试题 E 算法提高 我们的征途是星辰大海 题解和C++示例代码

    E 算法提高 我们的征途是星辰大海 时间限制:1.0s   内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表 ...

  4. 蓝桥杯题库 算法提高非vip部分(C++、Java)代码实现(251-280)

    文章目录 ADV-251 Petri Net Simulation cpp: java: ADV-252 Navigation cpp: ADV-256 The Sky is the Limit cp ...

  5. 【蓝桥杯练习】算法提高 贪吃的大嘴

    问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能 ...

  6. 【预览】蓝桥杯竞赛python算法笔记 代码模板|吐血总结|蓝桥杯省赛国赛

    [预览]蓝桥杯竞赛python算法笔记 代码模板|吐血总结 完整版链接 文章目录 [预览]蓝桥杯竞赛python算法笔记 代码模板|吐血总结 1 二分算法求分界值 2 双指针算法 2.1 求最长的不包 ...

  7. 蓝桥杯:试题 算法训练 Remember the A La Mode

    蓝桥杯:试题 算法训练 Remember the A La Mode 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 Hugh Samston经营着一个为今年的ICPC世界总决赛的参 ...

  8. 蓝桥杯单片机14届省赛

    蓝桥杯单片机14届省赛代码(省一) 欢迎使用Markdown编辑器 main.c #include "HC138.h" #include "PCF8591.h" ...

  9. 【完整版】蓝桥杯竞赛python算法笔记 代码模板|吐血总结|蓝桥杯省赛国赛

    蓝桥杯竞赛python算法笔记 代码模板|吐血总结 文章目录 蓝桥杯竞赛python算法笔记 代码模板|吐血总结 1 二分 1.1 二分求最大满足(check红色条件) 1.2 二分求最小满足(che ...

最新文章

  1. AI 架构师 Yoshua Bengio:深度学习的研究,对于工业应用来说太过简单
  2. python基础语法3_python基础语法三
  3. AWS — AWS Direct Connect
  4. 几点易被忽视的网络软故障排查
  5. SVN关于忽略xcuserdata目录
  6. ML之HierarchicalClustering:自定义HierarchicalClustering层次聚类算法
  7. linux weblogic启动目录,Linux下WebLogic开机启动设置
  8. SQL Server Update 所有表的某一列(列名相同,类型相同)数值
  9. .NetCore中IdentityServer使用nginx-proxy的一次排错经历
  10. 字符数组拷贝与strcpy函数
  11. (转)Struts2的标签库
  12. Android蓝牙A2DP连接实现
  13. 怎样组合数字python_利用python实现数字组合
  14. 【C语言】在线OJ题 BC99-BC119-牛客网编程初学者入门训练
  15. 注册网站域名多少钱_浅析网站域名申请注册的四种常见方式
  16. 快递查询—API接口
  17. 硅芯思见:SystemVerilog中unpacked数组的assignment pattern
  18. 物流小程序设计开发的功能明细与方案
  19. 绘画系统-MATLAB版
  20. 推荐Java反编译工具luyten、jd-gui

热门文章

  1. python异常值处理实例_python-异常值:(“ 08001”,“ [08001] [unixODBC]...
  2. 【跃迁之路】【737天】程序员高效学习方法论探索系列(实验阶段494-2019.2.27)...
  3. spring整合quartz框架
  4. 机器学习工具在数据中心的应用与发展
  5. android Bundle的作用
  6. jsp当参数为空的时候默认显示值
  7. 人工智能——框架表示法
  8. 被投毒的管道:研究员探索CI环境中的攻击方法
  9. Exploit 代码用于攻击中?GitHub 马上删除
  10. 像素越高,模型越好?2.1亿 VS 3亿实战测试