洛谷P8090题解

本文同步更新于洛谷博客

前言

这个游戏最近好像挺火的,先附上网址

题解

我们分别用 xy 来记录绿色和黄色出现的次数。若相同位置上的字母一样,则 x++;否则我们用两个桶 ab 分别记录正确答案和猜测的方阵中未匹配成功的字母出现的次数。最后遍历所有字母, y+=min(a[i],b[i]) 即可。

Code

#include<bits/stdc++.h>
using namespace std;
int a[30],b[30],x,y;
char s[10][5]; 
int main()
{
	for(int i=1;i<=6;i++)
		scanf("%s",s[i]+1);
	for(int i=4;i<=6;i++)
	{
		for(int j=1;j<=3;j++)
		{
			if(s[i][j]==s[i-3][j])
				x++;
			else
			{
				a[s[i-3][j]-'A'+1]++;
				b[s[i][j]-'A'+1]++;
			}
		}
	}
	for(int i=1;i<=26;i++)
		y+=min(a[i],b[i]);
	printf("%d\n%d",x,y);
	return 0;
}
上一篇:CSDN:《新程序员003》正式上市,华为、阿里等 30+ 公司的云原生及数字化实战经验


下一篇:【每日一题】【动态规划】2022年1月30日-NC127 最长公共子串