题目描述

奶牛们发明了一种名为 Herdle 的新型解谜游戏,在牛界引起了轰动。

每天都会有一个新谜题发布供奶牛解决。游戏采用 3x3 方阵的形式表示农场的一块田地,田地的每个方格都由特定品种的奶牛占据。总共只有 26 种可能的品种,每一种由 A 到 Z 中的不同大写字母标识。玩家不会被告知田地中的奶牛品种排列方式——游戏目标是通过一系列猜测确定它们。

每次猜测,奶牛们输入一个 3x3 的大写字母方阵,表示该田地可以用奶牛填充的可能方式。猜测的某些方格可能是正确的。这些方格以绿色高亮显示,让奶牛们知道这些是正确的。猜测的另一些方格可能填入了品种正确但位置错误的奶牛。这些以黄色高亮显示。

黄色高亮显示的方格的数量可以帮助指示某个品种的奶牛数量。 例如,假设猜测方阵包含 4 头品种 A 的奶牛,而答案方阵包含 2 只品种 A 的奶牛,其中没有正确位置上的 A (即,它们都不应该是绿色的)。 在这种情况下,猜测方阵中只有两个 A 应以黄色高亮显示。 更准确地说,如果猜测方阵中有 x 个特定品种的奶牛,并且 答案方阵中有 y<x 头该品种奶牛(不包括位置正确而得到绿色高亮显示的奶牛),那么猜测方阵的 x 头奶牛中只有 y 头奶牛应该以黄色高亮显示。

给定正确答案的方阵和一个表示对该答案的猜测的方阵,请计算绿色和黄色高亮显示的方格的数量。

输入格式(从终端 / 标准输入读入):

输入的前 3 行给定了正确答案的方阵。以下 3 行表示对该答案的猜测。

输出格式(输出至终端 / 标准输出):

输出两行。输出的第一行包含应当以绿色高亮显示的方格的数量。输出的第二行包含应当以黄色高亮显示的方格的数量。

【输入输出样例】

输入样例1:

COW
SAY
MOO
WIN
THE
IOI

输出样例1:

1
1

在这个例子中,最后一行中间的 O 是正确的,所以这个方格以绿色高亮显示。字母 W 位于错误的位置,所以它以黄色高亮显示。

输入样例2:

AAA
BBB
CCC
AYY
AAA
ZZZ

输出样例2:

1
2

在这里,其中一个 A 位于正确的位置,所以它以绿色高亮显示。余下的 A 均不在正确位置上,由于答案方阵中有两个 A,所以有两个 A 应当以黄色高亮显示。

供题:Brian Dean,灵感来自应用 "Wordle"


第一版代码(部分数据点正确,有骗分的成分在)

#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
using namespace std;
char answer[100][100],check[100][100];int main()
{long long int i,j,k,m,len1,len2,green=0,yellow=0;string n;for(i=0;i<3;++i){cin>>n;len1=n.length();for(j=0;j<len1;++j){answer[i][j]=n[j];}}for(i=0;i<3;++i){cin>>n;len2=n.length();for(j=0;j<len2;++j){check[i][j]=n[j];}}for(i=0;i<3;++i){for(j=0;j<3;++j){if(answer[i][j]==check[i][j])   {green++;}}}for(i=0;i<3;++i){for(j=0;j<3;++j){if(answer[i][j]==check[i][j]) {yellow++;}   }}                    //黄色的高亮部分不知道怎么判断,就直接复制了绿色部分骗了三个数据点cout<<green<<endl;cout<<yellow<<endl;return 0;
}

测试结果:(相比上一次啥也没对,是有一点点进步了的)


已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;
}

USACO 2022 January Contest, Bronze ——Problem 1. Herdle相关推荐

  1. USACO 2022 January Contest, Bronze

    Problem 1. Herdle 奶牛们发明了一种名为 Herdle 的新型解谜游戏,在牛界引起了轰动. 每天都会有一个新谜题发布供奶牛解决.游戏采用 3x3 方阵的形式表示农场的一块田地,田地的每 ...

  2. USACO 2021 January Contest, Bronze. Problem 1. Uddered but not Herd

    题目描述 一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」.牛文由 26 个字母 'a' 到 'z' 组成,但是当奶牛说牛文时,可能与我们所熟悉的 'abcdefghijklmnopqrstuvwx ...

  3. Promotion Counting【USACO 2016 January Contest, Bronze】

    今天来分享一下我做过的几道Usaco的比较简单的题,Usaco是美国的一个c++竞赛比赛,但是全球各地的人都可以参加,Usaco没有监考,全凭诚信,但是你拿着这个 作弊 借鉴来的成绩,所有美国的大学都 ...

  4. USACO 2015 January Contest Bronze——奶牛的旅行路线

    文章目录 题目描述 输入格式 输出格式 数据范围 输入样例 输出样例 实现代码--奶牛只想走一条路线的情况下 题目描述 厌倦了农场寒冷的冬季天气,奶牛贝茜计划飞往一个温暖的目的地度假. 不幸的是,她发 ...

  5. USACO 2018 January Contest

    USACO 2018 January Contest 比赛链接 T1 MooTube 题目链接 题目大意:给定一个图,两个点之间的距离是他们路径上边权的最小值.给定一个起点,求距离大于等于K的点有几个 ...

  6. USACO 1月 2021-2022 January Contest Bronze 题解

    目录 你好啊我又又又来了 要准备usaco的铁铁们可以参考这个文章哦!USACO题库 - 比Usaco Training更好用的网站_GeekAlice的博客-CSDN博客https://blog.c ...

  7. USACO 2022 December Contest, BronzeProblem 1. Cow College 题解

    以下是2022年-2023年USACO赛季第一个月的青铜组第一题,可以使用"计数数组+打擂台找最值"的思想,需要考生掌握一点算法才能通关.文章引用了官网题面,提供思考思路和代码,代 ...

  8. USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解

    题目描述 Farmer John 有 N 头奶牛(1≤N≤20),高度为 a1-aN.他的牛栏有 N 个牛棚,高度限制分别为b1-bN(例如,如果 b5=17,那么一头高度不超过 17 的奶牛可以住在 ...

  9. USACO 2012 January Contest, Silver Division Solution

    T1是一道构图然后跑最短路的题. T2是一道裸的dp 然而我看了以后觉得爆搜是一定可以过掉的== 于是我先来一发二进制枚举,然后two points 维护答案.. T3是一道神题 首先要分类讨论,然后 ...

最新文章

  1. Netty原理五:ChannelFuture、DefaultChannelPromise对象解析
  2. 表单提交对chrome记住密码的影响
  3. python降维之时间类型数据的处理_使用Python进行数据降维|线性降维
  4. 添加编译宏_软件开发——编译链接
  5. JeecgBoot 2.4 微服务正式版发布,基于SpringBoot的低代码平台
  6. c语言把字符串写入文件,c语言文件读写 | 按字符,按行,按块
  7. 域渗透——Local Administrator Password Solution
  8. 《Face alignment at 3000 FPS via Regressing Local Binary Features》阅读笔记
  9. Linux下服务器搭建(5)——CentOS下Redis的安装
  10. React Native组件(四)TextInput组件解析
  11. Java中字符串的几个实例
  12. form表单问题记录
  13. 201632位matlab下载_Matlab 2016a下载
  14. 微信群二维码有效期如何延长?突破7天有效期的方法!
  15. web 自动化测试 浏览器及驱动下载地址大全
  16. sql server操作1:数据库及基本表的建立
  17. 红米手机html文件,红米手机怎么传文件到电脑
  18. 产业互联网,一次从需求侧向供给侧的自我嬗变
  19. 内网安全-域横向CobaltStrikeSPNRDP
  20. 同步Socket 与 异步 Socket

热门文章

  1. KYC 技术详解:对金融行业与隐私合规的价值和意义
  2. linux内核启动停止在booting the kernel.
  3. EXCEL中如何根据标点符号进行表格分列
  4. android国际化设置语言后不起作用,Android旋转屏幕后国际化语言失效的解决的方法...
  5. matlab 字符串标量和字符向量
  6. 项目经理:Redis缓存都会用,那使用后的效益和成本怎么估算?
  7. 台式计算机网络共享,台式WIN7双网卡共享另外一部台式电脑上网设置
  8. 一段关于霸面腾讯的经历以及霸面的技巧跟准备
  9. UE4 使用顶点绘制
  10. 正则表达式验证邮箱格式