1742C

题目链接

题目大意:

在一个8x8的方格中你每次可以将一行全部涂成红色或者将一列涂成蓝色。问最后一次操作是什么操作:

  1. 如果是行操作就输出R
  2. 如果是列操作就输出B

解题思路:

我们可一枚举每行每列,如果有一行全部是红色的话那就说明最后一次操作是行操作,否则是列操作。反正数据量不大,不过就是16次而已。

我的坑点:

我一开是想着如果每一行的字母都相同的话,那么最后一次就是行操作,否则就是列操作。我忽略了一点,看图吧:

  

这种情况该输出R,但我的程序他会输出B,显然是错误的,记得要严谨!!!

下面是AC代码:

#include <bits/stdc++.h>
using namespace std;
char s[8][9];
bool row(int x)
{
for(int i = 0; i < 8; i ++ )
{
if(s[x][i] != 'R') return false;
}
return true;
}
bool columns(int x)
{
for (int i = 0; i < 8; i ++ )
{
if (s[i][x] != 'B') return false;
}
return true;
}
void Main()
{
for(int i = 0; i < 8; i ++ )
{
cin >> s[i];
}
for(int i = 0; i < 8; i ++ )
{
if (row(i))
{
puts("R");
return ;
}
}
for(int i = 0; i < 8; i ++ )
{
if (columns(i))
{
puts("B");
return ;
}
}
}
int main()
{
int t;
cin >> t;
while (t -- )
{
Main();
}
return 0;
}

 

posted @   Luli&  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示