描述
Long long ago you took a crazy trip around the world. You can not remember which cities did you start and finish the trip. Luckily you have all the boarding passes. Can you find out the starting city and ending city?

输入
The first line contains a number N denoting the number of boarding passes. (1 <= N <= 100)

The following N lines each contain a pair of cities (the city name consists of no more than 10 capital letters)

It is guaranteed that there is always a valid solution.

输出
The starting and ending cities separated by a space.

样例输入
4
SFO HKG
PVG BOS
HKG ABC
ABC PVG
样例输出
SFO BOS

题意:

给n个城市对,找出起点城市和终点城市,保证有合法的解。

思路:

这题需要注意的是有可能某个城市会经过多次,所以不能简单的认为起点的入度为0而终点的出度为0。这样判断只能得60分。正解是 对于起点其出度-入度 = 1,对于终点则是 入度-出度 = 1

#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>using namespace std;int in[205];
int out[205];int main()
{map<string,int>str2id;map<int,string>id2str;map<string,int>::iterator it;int n;string s1,s2;cin >> n;int id = 0;for (int i = 0; i < n; ++i) {cin >> s1 >> s2;it = str2id.find(s1);if (it == str2id.end()) {str2id[s1] = id;id2str[id] = s1;++id;}++out[str2id[s1]];it = str2id.find(s2);if (it == str2id.end()) {str2id[s2] = id;id2str[id] = s2;++id;}++in[str2id[s2]];}int flag = 0;for (int i = 0; i < id; ++i) {if (flag > 2) break;if (out[i] - in[i] == 1) s1 = id2str[i],++flag;if (in[i]- out[i] == 1) s2 = id2str[i],++flag;}cout << s1 << " " << s2 << endl;return 0;
}

每日一题之hiho213周 Boarding Passes相关推荐

  1. hiho一下 第213周:Boarding Passes

    描述 Long long ago you took a crazy trip around the world. You can not remember which cities did you s ...

  2. 每日一题之 hiho235周 润秒(简单模拟)

    描述 计算机系统中使用的UTC时间基于原子钟,这种计时方式同"地球自转一周是24小时"的计时方式有微小的偏差.为了弥补这种偏差,我们偶尔需要增加一个"闰秒". ...

  3. 每日一题之 hiho232周 拆字游戏

    描述 小Kui喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸",小Kui的语文学的不是很好,于是她决定使用编程的方式来解决这个问题. 给出一个01矩阵,1 ...

  4. 每日一题之hiho231周 小Ho的强迫症 (数学题)

    描述 小Ho在一条笔直的街道上散步.街道上铺着长度为L的石板,所以每隔L距离就有一条石板连接的缝隙,如下图所示. 小Ho在散步的时候有奇怪的强迫症,他不希望脚踩在石板的缝隙上.(如果小Ho一只脚的脚尖 ...

  5. acwing——每日一题——总结

    acwing--每日一题--总结 第一周 1.笨拙的手指(考查点:进制转换) 2.干草堆(考查点:差分+前缀和) 3.奶牛选美(bfs模板+floodfill算法) 4.拖拉机(bfs+双端队列=迪杰 ...

  6. 【每日一题】美国节日(基姆拉尔森公式、蔡勒公式)

    [每日一题]美国节日(基姆拉尔森公式.蔡勒公式)   相关文章:   [每日一题]一周中的第几天(基姆拉尔森公式的应用)   [每日一题]美国节日(基姆拉尔森公式.蔡勒公式)   [每日一题]计算日期 ...

  7. acwing----春季每日一题2022篇(一)

    春季每日一题第一周题解 你知道你的ABC吗(推理) 放养但没有完全放养(贪心) 牛年(模拟) 牛的学术圈 I(前缀和 + 技巧) 奶牛体操(思维 + 图论) 你知道你的ABC吗(推理) 题目链接 解题 ...

  8. 每日一题——判断素数

    哈喽大家好,我是保护小周ღ,本期为大家带来的是编程实现输入一个数判断他是否为素数,博主将使用2种方法解答此题,一起来看看有没有大家平时使用的方法啊~ 题目: 从键盘输入一个整数,判断该数是否素数.素数 ...

  9. 每日一题吧算是,见证自己的成长路程_(:з」∠)_

    目录 前言: 一.整理思路: 1.照明范围: 2.明亮空地的数组思想转化: 2.1: 2.2: 二.代码的实现和细节讲解: 1.变量的定义和含义: 2.火把照明的实现: 3.萤石照明的实现 : 4.对 ...

最新文章

  1. Python:python中的可变类型和不可变类型
  2. oracle-一些查看性能相关的视图
  3. 八、pyqt5按钮类控件——QPushButton、QRadioButton、QCheckBox
  4. comsol matlab 循环,comsol保存为m文件,怎样在m文件里面加入for循环 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  5. IO、NIO、AIO 内部原理分析
  6. DECRIBE / EXPLAIN
  7. 如何发现优秀的开源项目?
  8. [翻译]高阶Python一学就会
  9. TableLayout与MigLayout
  10. 3. jQuery 选择器
  11. 净初级生产力(NPP)空间分布数据汇总整理
  12. C64x+ 与 C64x Cache 区别
  13. coreldraw x7如何禁网_出现问题如何修改和修复安装coreldraw x7
  14. 计算机怎么设置桌面密码忘了,win7忘记开机密码怎么办?[多图]
  15. linux 龙芯cpu 测试,龙芯CPU实测!对比赛扬 没想到会这样
  16. Linux环境下进行本地Blast比对——操作流程
  17. 「MySQL」- 基础增删改查
  18. Cordova--IOS打包问题汇总
  19. 区别:KL散度,JS散度,Wasserstein距离(EMD)
  20. typedef和typename的区别

热门文章

  1. Photoshop批量给不同的图片添加不同的编号
  2. 计算机视觉与音乐,Talk预告 | 香港中文大学MMLab在读博士生周航: 视觉引导的音乐声源分离与立体声生成...
  3. 安装虚拟机,宿主机未找到vmnet8等网卡信息
  4. python plt图标隐藏坐标轴(隐藏而不是去除)
  5. 01分数规划 东师oj3582: 小澳的葫芦
  6. 教学|zbrush人头建模,头部模型雕刻方法
  7. 新加坡管理大学何盛烽招收计算机视觉、图像生成方向全奖博士
  8. 自建DHCP服务之isc-dhcp-server
  9. mfc 对话框透明 控件不透明_盛夏“透明衬衫”足够火,不挑皮肤不挑身材,清凉透气还洋气...
  10. JAVA:实现Graphs图表算法(附完整源码)