CodeForces 501B(STL_H题)解题报告

Posted caomingpei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 501B(STL_H题)解题报告相关的知识,希望对你有一定的参考价值。

题目链接:http://codeforces.com/problemset/problem/501/B

--------------------------------------------------------------------------------

题意:N个改名操作,要求输出最开始和最终的名字

思路:利用map的操作,读取输入之后,查找是否在key中,如果不在key中,建立新的关系。如果在key中,建立新的key-value对,擦除旧的key-value对。最终通过迭代器输出key,value即可,表示起始名称与最终名称。

代码:

技术分享图片
#include<cstdio>
#include <map>  
#include <algorithm>
#include<string>
#include<iostream>
using namespace std;
map<string,string>::iterator it; 
int main(void){
    int n = 0;
    while(~scanf("%d",&n)){
    map<string,string> m1; 
    string a,b;  
    for(int i=0;i<n;i++){
        cin>>a>>b;
    if(m1.count(a)==0) m1[a]=a;
        m1[b]=m1[a];  
        m1.erase(a); 
    }
    cout << m1.size() << \n;  
        for(it=m1.begin();it!=m1.end();it++) {  
        cout << it->second <<   << it->first << \n;  
        }  
}  
    return 0;

}
View Code

 

以上是关于CodeForces 501B(STL_H题)解题报告的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces - 501B Misha and Changing Handles

CodeForces 612C (STL_A题)解题报告

CodeForces 689B(BFS_B题)解题报告

CodeForces 915C(DFS_E题)解题报告

CodeForces 5C(DP初步_G题)解题报告

CodeForces 607B(DP初步_H题)解题报告