纪念我一次不知如何输入

2022年3月29日 下午11:37 杂项

题目链接

C-次佛锅_2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 (nowcoder.com)

描述

其实就是输入是这样的,用map存mp[chi]=1;,然后查询出现次数。

chi 1 huo 3 guo 1
3
chi
huo
guo

解决方案

我当时不知道如何处理,其实读入一行还是很不错的,但是这一场也是打着玩玩,就走了
可以这么理解,如果碰到两个数字就停止,这第二个就是第二行的,具体见下面代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    map<string, int> cnt;
    string s;
    int x, q = 0;
    while (cin >> s) {//先读入一个string,按照第一行肯定是先字母
        if (isdigit(s[0])) {//但是如果这个时候第一位是数字,那么就说明是第二行的了
            for (auto it : s) {
                q = q * 10 + it - '0';
            }
            break;
        }
        cin >> x;//然后读入数字,次数
        cnt[s] += x;
    }

    while (q--) {
        cin >> s;
        cout << cnt[s] << "\n";
    }

    return 0;
}

Comments

  1. TheSunspot说道:

    这不直接stringstream

    1. Carry说道:

      没用过,对了,当时郎老师好像用的这个,还没来及问,就看到龙老师的了

回复 TheSunspot 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注