CodeForces - 501B Misha and Changing Handles
Posted sky-stars
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces - 501B Misha and Changing Handles相关的知识,希望对你有一定的参考价值。
Misha and Changing Handles
CodeForces原题是英文,这里就直接上中文好了,翻译不是太给力,但是不影响做题
^▽^
Description
神秘的三角洲里还有一个传说中的谜题等你来解开!
三角洲里的小学生小明是个小天才,知天文晓地理还能夜观星象算命,好多疯狂的小朋友都想去请他给自己换个好听的名字。但是天才小明,他总是在思考31维宇宙空间的奥秘,神游天外,所以在给小朋友们敲他们想要的名字的时候,偶尔会取出一些不那么完美的名字。有的小朋友们换了名字以后不太满意,于是它们又会顶着改好的新名字来找小明。
可怜的小明,他沉迷宇宙的奥秘,有的小朋友名字换的次数太多,他已经快要记不清他们初始的名字和最后的名字是什么了,再这样下去,小朋友们会不满意,他取名字的业务就要滞销了!!!请你帮他整理一下每个小朋友的初始名字和最后敲定的名字。
Input
第一行表示有q个请小明帮忙改名字的请求。1<=q<=1000.
接下来q行,每行有两个字符串,代表这次来的小朋友现在的名字,和小明这回给它起的名字,这两个字符串由1个空格分开,字符串有大小写字母和数字,长度不超过20.
Output
输出一个n,代表来找过小明修改名字的人数。
接下来n行,每行一个人的最初始的名字,再输出小明最终给它起的名字。 (人的顺序随意)
Examples
Input5
Misha ILoveCodeforces
Vasya Petrov
Petrov VasyaPetrov123
ILoveCodeforces MikeMirzayanov
Petya Ivanov
Output3
Petya Ivanov
Misha MikeMirzayanov
Vasya VasyaPetrov123
题目链接:
https://vjudge.net/problem/CodeForces-501B
新名字要和旧名字一一对应,用map再好不了,如果有新名字了,就及时更新,更新完之后记得删去旧名字(不是原始名字)
AC代码:
#include <iostream> #include <cstdio> #include <fstream> #include <algorithm> #include <cmath> #include <deque> #include <vector> #include <queue> #include <string> #include <cstring> #include <map> #include <stack> #include <set> #include <sstream> #define mod 1000000007 #define ll long long #define INF 0x3f3f3f3f #define ME0(x) memset(x,0,sizeof(x)) using namespace std; map<string,string>name;//新名字与老名字一一对应 map<string,string>::iterator it; int main() int n; int sum=0; cin>>n; while(n--) string s1,s2; cin>>s1>>s2; if(!name.count(s1))//判断这个名字是否出现过 name[s2]=s1; else//如果出现则更新 name[s2]=name[s1]; name.erase(s1);//记得删去上一个老名字 cout<<name.size()<<endl;//检查有几组映射 for(it=name.begin(); it!=name.end(); it++)//遍历即可 cout<<it->second<<" "<<it->first<<endl;
以上是关于CodeForces - 501B Misha and Changing Handles的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces 832D - Misha, Grisha and Underground
Codeforces 832 D Misha, Grisha and Underground
Codeforces 501C Misha and Forest(bfs)
Misha, Grisha and Underground CodeForces - 832D (倍增树上求LCA)
Codeforces Round #425 (Div. 2) Problem D Misha, Grisha and Underground (Codeforces 832D) - 树链剖分 - 树状