题目大意:给一个图,可以红色‘\‘这样刷,蓝色‘/‘这样刷,一个有两种颜色就变成绿色。
解题思路:每一根斜线,挨着找即可。
注意点:1.不是一个正方形,可以是一个矩形
2.一根斜线不用把整个图形贯穿完,可以只画一部分
#include <stdio.h>
#include <string.h>
int main()
{
char str[50][50];
int t, n, m, s, i, j, ii, jj, flag;
scanf("%d", &t);
while (t)
{
t--;
scanf("%d", &n);
for (int i = 0; i < n; i ++)
{
scanf("%s", str[i]);
}
m = strlen(str[n-1]);
s = 0;
i = 0;
j = m - 1;
while (i < n)
{
flag = 0;
ii = i;
jj = j;
while (ii < n && jj < m)
{
if (str[ii][jj] == 'R' || str[ii][jj] == 'G')
{
if (!flag)
{
s++;
flag = 1;
}
}
else
{
if (flag)
{
flag = 0;
}
}
ii++;
jj++;
}
if ((!i) && j)
j--;
else
i++;
}
i = 0;
j = 0;
while (j < m)
{
flag = 0;
ii = i;
jj = j;
while (ii >= 0 && jj < m)
{
if (str[ii][jj] == 'B' || str[ii][jj] == 'G')
{
if (!flag)
{
s++;
flag = 1;
}
}
else
{
if (flag)
flag = 0;
}
ii--;
jj++;
}
if ((!j) && (i < n-1))
i++;
else
j++;
}
printf("%d\n", s);
}
return 0;
}