码迷,mamicode.com
首页 > 其他好文 > 详细

CodeForces 501B(STL_H题)解题报告

时间:2018-01-22 17:36:17      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:main   关系   end   技术   key   alt   com   名称   scanf   

题目链接: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题)解题报告

标签:main   关系   end   技术   key   alt   com   名称   scanf   

原文地址:https://www.cnblogs.com/caomingpei/p/8329562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!