题意:填写矩阵使得每个位置与周围的都不相等
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 20;
int n;
char map[MAXN][MAXN];
char fill(int row,int col){
for (int ch = 'A'; ch <= 'Z'; ch++)
if (ch != map[row][col-1] && ch != map[row][col+1]
&& ch != map[row+1][col] && ch != map[row-1][col])
return ch;
}
void solve(){
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (map[i][j] == '.')
map[i][j] = fill(i,j);
for (int i = 1; i <= n; i++)
printf("%s\n",map[i]+1);
}
int main(){
int t,cas=1;
scanf("%d",&t);
while (t--){
scanf("%d",&n);
memset(map,0,sizeof(map));
for (int i = 1; i <= n; i++)
scanf("%s",map[i]+1);
printf("Case %d:\n",cas++);
solve();
}
return 0;
}