题目传送门
/*
题意:刷墙,斜45度刷红色或蓝色,相交的成绿色,每次刷的是连续的一段,知道最终结果,问最少刷几次
模拟+思维:模拟能做,网上有更巧妙地做法,只要前一个不是一样的必然要刷一次,保证是最小的,脑洞大
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int MAXN = ;
const int INF = 0x3f3f3f3f;
char s[MAXN][MAXN];
bool vis[MAXN][MAXN];
int n, m;
int main(void) { //HDOJ 5319 Painter
//freopen ("1004.in", "r", stdin);
int T; scanf ("%d", &T);
while (T--) {
scanf ("%d", &n);
for (int i=; i<=n; ++i) scanf ("%s", s[i] + );
memset (vis, false, sizeof (vis)); m = strlen (s[] + );
int ans = ;
for (int i=; i<=n; ++i) {
for (int j=; j<=m; ++j) {
if (s[i][j] == 'R' || s[i][j] == 'G') {
if (!(s[i-][j-] == 'R' || s[i-][j-] == 'G')) ans++;
}
}
}
for (int i=; i<=n; ++i) {
for (int j=; j<=m; ++j) {
if (s[i][j] == 'B' || s[i][j] == 'G') {
if (!(s[i-][j+] == 'B' || s[i-][j+] == 'G')) ans++;
}
}
}
printf ("%d\n", ans);
}
return ;
}