map-小D与笔试

题目背景
小 D 是一位即将参加 ION 的 IO 选手,然而笔试题库中数量繁多的奇怪题目让他大伤脑筋,快来帮帮他!

题目描述
笔试题库可以抽象为 nn 道题目,每道题目由题面和答案组成,都是一个字符串,保证所有题目题面互不相同。

为了检验小 D 背笔试的效果,教练进行了一次模拟考试,考试包含 q 道题目,每道题目都有 4 个选项,小 D 需要从 4 个选项中选出与答案相符的选项。

现在你需要帮助小 D 完成这场考试。

输入格式
第一行两个正整数 n, q。

接下来 n 行,每行 2 个用空格分隔的字符串,表示这道题目的题面和答案。

接下来 q 行,每行 5 个用空格分隔的字符串,第一个字符串表示模拟考试中这道题目的题面,其余 4 个字符串按顺序分别为这道题目的选项 A 到选项 D,保证选项各不相同。

在这里插入图片描述

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>

using namespace std;

char ou[4]={
    
    'A','B','C','D'};//打表,方便输出
map<string,string>ans;//字符串映射字符串
int n,q;
int main()
{
    
    
    int i,j,k;
    cin>>n>>q;
    for(i=1;i<=n;i++)
    {
    
    
        string x,y;
        cin>>x>>y;
        ans[x]=y;//映射关系
    }
    for(i=1;i<=q;i++)
    {
    
    
        string x;
        cin>>x;
        string an=ans[x];//先存好答案
        for(j=1;j<=4;j++)
        {
    
    
            string y;
            cin>>y;
            if(an==y)
            {
    
    
                cout<<ou[j-1]<<endl;
            }
        }
    }
    return ^.^;//完美结束
}

and

#include<bits/stdc++.h>
using namespace std;

int n,m;
string s1,s2;//题面与答案
map<string,string> a;
char c[]={
    
    ' ','A','B','C','D'};//预处理选项

int main()
{
    
    
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	{
    
    
		cin>>s1>>s2;
		a[s1]=s2;//保存答案
	}
    
	for(int i=1;i<=m;++i)
	{
    
    
		cin>>s1;
		for(int j=1;j<=4;++j)
		{
    
    
			cin>>s2;
			if(s2==a[s1]) cout<<c[j]<<endl;//注意输出答案后不要break掉,因为要输入满4个
		}
	}
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_52045928/article/details/116176357