题目链接
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;
}
文章评论
这不直接stringstream
@TheSunspot 没用过,对了,当时郎老师好像用的这个,还没来及问,就看到龙老师的了