「Luogu P5601」小D与笔试

题目链接

戳我

\(Solution\)

这道题官方题解的做法太复杂了,还需要扫字符串。

其实只需要两个\(map\)就好了.

一个\(map<string,stirng>\)用来记录题目一个题面的答案是什么
一个\(map<string,char>\)用来记录答案是\("A","B","C","D"\)中的哪个

然后直接输出就好了,详细见代码

#include<bits/stdc++.h>
#define rg register
#define file(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
using namespace std;
int read(){
    int x=0,f=1;char c=getchar();
    while(c<'0'||c>'9') f=(c=='-')?-1:1,c=getchar();
    while(c>='0'&&c<='9') x=x*10+c-48,c=getchar();
    return f*x;
}
map<string,char> s;
map<string,string> ss;
string c,cc;
int main(){
	int n=read(),q=read();
	for(int i=1;i<=n;i++)
		cin>>c>>cc,ss[c]=cc;
	while(q--){
		cin>>c;
		for(int i=0;i<4;i++)
			cin>>cc,s[cc]=i+'A';
		cout<<s[ss[c]]<<endl;
		s.clear();
	}
}
posted @ 2019-10-28 08:33  撤云  阅读(217)  评论(0编辑  收藏  举报
……