zoukankan      html  css  js  c++  java
  • SOJ 1027 MJ,Nowhere to Hide

    题目大意:输入n行(id, ip)对,对同一个ip,第一次出现的ip对应的id为Main_ID, 第二次出现的ip对应的id为MJ_ID, 输出n / 2个(Main_ID, MJ_ID)对,输出格式为 MJ_ID is the MaJia of Main_ID,输出按Main_ID的字典序输出。当n为0时,输入结束。

    解题思路:这是一种映射问题,用数据结构map非常合适。每次读入(id, ip) 对,检查map中是否已存在键值为ip的键,若不存在,则插入(id, ip)对,若存在则存放到结果映射表中。

         最后遍历结果映射表输出答案。

    代码如下:

    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;
    
    int main() {
        int n;
        while (cin >> n, n) {
            map<string, string> m;
            map<string, string> ans;
    
            string id, ip;
            for (int i = 0; i < n; i++) {
                cin >> id >> ip;
                if (m.find(ip) == m.end()) {
                    m[ip] = id;
                } else {
                    ans[m[ip]] = id;
                }
            }
    
            map<string, string>::iterator iter = ans.begin();
            while (iter != ans.end()) {
                cout << iter->second << " is the MaJia of " << iter->first << endl;
                iter++;
            }
            cout << endl;
    
        }
        return 0;
    }
  • 相关阅读:
    Echarts入门踩坑记录
    作业帮前端面经
    猿辅导前端面经
    昆仑万维前端面经
    顺丰科技前端面经
    云从科技前端面经
    亿联网络前端面经
    寒武纪前端面经
    纽约州交通事故数据可视化
    Vue中Object和Array数据变化侦测原理
  • 原文地址:https://www.cnblogs.com/mchcylh/p/4833424.html
Copyright © 2011-2022 走看看