题目链接:https://ac.nowcoder.com/acm/contest/30532/C
题目描述
你好阿,穿越题目前来的选手
众所周知backordinary不会次佛锅,所以邀请您来喂他。 佛锅是一串包含大小写英文字母、数字、空格的字符串。每个食材用单词加数字的方式表示,代表这个食材有多少个,例如yaxin 1代表有1个yaxin。每个食材间用空格隔开,相同食材可能多次出现。 backordinary每次会告诉你他想吃啥,需要你去锅里给他夹出来,他想知道每次他能吃到多少。
输入描述:
第一行长度为n的字符串,代表佛锅
第二行一个正整数T,代表backordinary的询问次数
接下来T行每行一个长度为len_i字符串,代表backordinary的询问
输出描述:
对于每次询问,输出一行一个整数,代表他能吃到的数量
输入
chi 1 huo 3 guo 1
3
chi
huo
guo
输出
1
3
1
备注
AC
碎碎念
我是傻杯我是傻杯我是傻杯!最开始以为是一个大模拟,但是被字符串搞得头疼,没处理好。赛后(2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛)猛然反应过来就是map映射就行,喵的
在写前两遍的时候,没注意到可能有食材重复的情况,然后过了样例,一提交WA声一遍,我真是个笨比
代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
map<string,int> food;
int main()
{
while(true)
{
string s;
int a;
cin>>s>>a;
char c=getchar();
food[s] += a;
if(c=='\n')
break;
}
int k;
cin>>k;
while(k--)
{
string s;
cin>>s;
cout<<food[s]<<endl;
}
return 0;
}
|