LuoguP5601 小D与笔试 题解

看上去有点看不懂,但细细看题后可以发现这道题目是很水的。


在输入完题面及答案之后,就输入每个题的时候枚举一下题面是否匹配,然后再匹配答案就行了,因为看数据范围\(n,q,s\leqslant 100\)就肯定地知道枚举不会爆炸。

好像这是最不需要讲的一道题目(当然A+B除外)


那么,直接上代码自己理解一下吧,有不懂的可以私信我哦。

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;

const char dx[5] = {' ', 'A', 'B', 'C', 'D'};
struct pre {
	string ps, ans;
}p[107];
struct pro {
	string p, ans[5];
}s[107];
int n, q;

int main() {
	scanf("%d%d", &n, &q);
	for(int i = 1; i <= n; ++i)
		cin >> p[i].ps >> p[i].ans;
	for(int i = 1; i <= q; ++i) {
		cin >> s[i].p >> s[i].ans[1] >> s[i].ans[2] >> s[i].ans[3] >> s[i].ans[4];
		for(int j = 1; j <= n; ++j)
			if(s[i].p == p[j].ps)
				for(int k = 1; k <= 4; ++k)
					if(p[j].ans == s[i].ans[k])
						printf("%c\n", dx[k]);
	}
	return 0;
}
posted @ 2021-12-23 21:10  Eason_AC  阅读(31)  评论(0)    收藏  举报