Herdle 题解+翻译
2023-09-10 12:01:57
发布于:广东
25阅读
0回复
0点赞
题目翻译
erdle--青铜级
题目描述
奶牛们发明了一种名为 Herdle 的新型解谜游戏,在牛界引起了轰动。
每天都会有一个新谜题发布供奶牛解决。游戏采用 x 方阵的形式表示农场的一块田地,田地的每个方格都由特定品种的奶牛占据。总共只有 种可能的品种,每一种由 到 $Z\bold $ 中的不同大写字母标识。玩家不会被告知田地中的奶牛品种排列方式——游戏目标是通过一系列猜测确定它们。
每次猜测,奶牛们输入一个 的大写字母方阵,表示该田地可以用奶牛填充的可能方式。猜测的某些方格可能是正确的。这些方格以绿色高亮显示,让奶牛们知道这些是正确的。猜测的另一些方格可能填入了品种正确但位置错误的奶牛。这些以黄色高亮显示。
黄色高亮显示的方格的数量可以帮助指示某个品种的奶牛数量。 例如,假设猜测方阵包含 头品种 的奶牛,而答案方阵包含 只品种 的奶牛,其中没有正确位置上的 (即,它们都不应该是绿色的)。 在这种情况下,猜测方阵中只有两个 应以黄色高亮显示。 更准确地说,如果猜测方阵中有 个特定品种的奶牛,并且 答案方阵中有 头该品种奶牛(不包括位置正确而得到绿色高亮显示的奶牛),那么猜测方阵的 头奶牛中只有 头奶牛应该以黄色高亮显示。
给定正确答案的方阵和一个表示对该答案的猜测的方阵,请计算绿色和黄色高亮显示的方格的数量。
输入格式
输入的前 行给定了正确答案的方阵。以下 行表示对该答案的猜测。
输出格式
输出两行。输出的第一行包含应当以绿色高亮显示的方格的数量。输出的第二行包含应当以黄色高亮显示的方格的数量。
输入输出样例 #1
输入
COW
SAY
MOO
WIN
THE
IOI
输出
1
1
在这个例子中,最后一行中间的 是正确的,所以这个方格以绿色高亮显示。字母 位于错误的位置,所以它以黄色高亮显示。
AC代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
char answer[10][10],check[10][10];
int sum1[27],sum2[27];
int main()
{
int i,j,green=0,yellow=0;
string n;
for(int i=0;i<3;++i)
{
for(int j=0;j<3;++j)
{
cin>>answer[i][j];
}
}
for(int i=0;i<3;++i)
{
for(int j=0;j<3;++j)
{
cin>>check[i][j];
}
}
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
if(answer[i][j]==check[i][j]) //统计绿色
{
green++;
}
else //统计在方块中存在,但位置不对的情况
{
sum1[answer[i][j]-'A']++; //统计上部分的方块各个字母的数量
sum2[check[i][j]-'A']++; //统计下部分的方块各个字母的数量
}
}
}
for(int i=0;i<26;++i)
{
yellow+=min(sum1[i],sum2[i]);
//以较小的数量为准,因为多了的字母上/下面不一定有,少了的一定会满足
}
cout<<green<<endl;
cout<<yellow<<endl;
return 0;
}
这里空空如也
有帮助,赞一个