题目:
在一个 n×n 的矩阵中,我们会对矩阵进行两种操作:
-
R 操作:把矩阵的某一行全部涂成红色;
-
B 操作:把矩阵的某一列全部涂成蓝色。
每次操作都会覆盖之前单元格的颜色。
例如上图中,第一次将第 55 列所有单元格全部涂成蓝色,第二次将第 44 行所有单元格涂成红色,在第二次操作中,第 44 行第 55 列的单元格会被重新涂成红色(覆盖原来的蓝色)。
现在给定你对矩阵进行若干次操作之后的状态,请你计算最后一次操作是哪一种操作。如果是 R 操作,则输出 R,否则输出 B。
【输入格式】
第一行,包含一个整数 T,表示包含 T 组测试数据;
每组测试数据:
第一行,包含一个正整数 n;
接下来 n 行,每行一个长度为 n 字符串,第 i 个字符串表示矩阵第 i 行的状态,保证字符串种只包含 "." 和 R 和 B,分别表示空白(未涂色)、红色和蓝色。
【输出格式】
每组测试数据输出一行,一个字符,最后一次操作是 R 操作,则输出 R,否则输出 B。
【输入输出样例#1】
输入#1
2
8
....B...
....B...
....B...
RRRRRRRR
....B...
....B...
....B...
....B...
8
B......B
B......B
B......B
B......B
B......B
B......B
B......B
B......B
输出#1
R
B
【输入输出样例#2】
输入#2
3
8
RRRRRRBB
.B.B..BB
RRRRRRBB
.B.B..BB
.B.B..BB
RRRRRRBB
.B.B..BB
.B.B..BB
1
R
2
BB
BB
输出#2
B
R
B
【输入输出样例#3】
输入#3
3
9
RRRRBRBRR
.B.BBBB..
RRRBBBBRR
.B.BBBB..
.B.BBBB..
.B.BBBB..
.B.BBBB..
.B.BBBB..
RRRRBBBRR
5
.....
.....
.....
RRRRR
.....
9
RRRRRRRRR
RBRRRRRBR
BB.....BB
RRRRRRRRR
BB.....BB
BBRRRRRBB
BB.....BB
RBRRRRRBR
BB.....BB
输出#3
B
R
R
【数据范围】
对于 20% 的数据:保证只进行了两次操作;
另外 10% 的数据:保证只进行了一次操作;
对于 100%100% 的数据:1≤ t ≤100,1≤ n ≤100。
不会函数的去瞅瞅这篇 :函数是个啥
好了,简要说明一下思路:
如果行找到了一行R(n次)输出R,否,输出B
注意:要扫完了再输出B;
上代码:
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
int n;
int f=1;
int flag=0;
int cnt=0;
int cinn()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
}
}
}
void judge()
{
for(int j=1;j<=n;j++)
{
for(int h=1;h<=n;h++)
{
if(a[j][h]=='R')
{
cnt++;
}
else break;
}
if(cnt==n)
{
cout<<"R"<<"\n";
cnt=0;
return;
}
else cnt=0;
}
cout<<"B"<<endl;
return;
}
int main()
{
int t;
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n;
cinn();
judge();
}
return 0;
}
不会的可以随时问我,作者随时在线!!!
一个人至少拥有一个梦想,有一个理由去坚强。