J - Fill the Square(暴力&填方格)
题意:给一 图,将未填字母的格子填上字母,保证相邻字母不相同,并且要求从左到右,从上到下按字典序填。
思路:因为 最大只有 ,所以依次从上到下,从左到右一个个填,每次填的时候从 遍历到 判断一下周围的字母是否冲突即可。
时间复杂度:
AC代码:
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=15;
char mp[N][N];
int n,t;
int main(){
scanf("%d",&t);
for(int k=1;k<=t;k++)
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%s",mp[i]+1);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++){
if(mp[i][j]=='.')
for(int m=0;m<26;m++)
{ char c='A'+m;
if(mp[i][j-1]==c||mp[i][j+1]==c||mp[i+1][j]==c||mp[i-1][j]==c){
continue;
}
mp[i][j]=c;
break;
}
}
}
printf("Case %d:\n",k);
for(int i=1;i<=n;i++)
printf("%s\n",mp[i]+1);
}
return 0;
}