美文网首页
1101: 填充正方形

1101: 填充正方形

作者: Celia_QAQ | 来源:发表于2019-03-20 07:55 被阅读0次

Time Limit: 1 SecMemory Limit: 128 MB

Submit: 463Solved: 157

[Submit][Status][Web Board]

Description

在一个n*n的网格中填写了一些大写字母,你的任务是把剩下的格子中也填满大写字母,使得任意相邻格子中的字母不同.如果有多种填法,则要求按照从上到下,从左到右的顺序把所有格子连起来得到的字符串的字典序应最小.

Input

多组测试数据,每组测试数据的第一行为一个正整数n.(1<=n<=10),接下来n行分别有n个字符代表n*n的网格,为了清晰起见,用’.’代表没有大写字母的网格.

Output

对于每组数据输出填满大写字母后的网格.每组测试数据间有一个空行,最后一组测试数据后面没有空行.

Sample Input

3

...

...

...

3

...

A..

...

Sample Output

ABA

BAB

ABA

BAB

ABA

BAB


#include<iostream>

#include<cstdio>

using namespace std;

const int maxn=15;

char list[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";

void fill(char s[][maxn],int i,int j,int n)

{

int k=0;

for(k=0;k<26;k++)

{

if(i-1>=0 && s[i-1][j]==list[k])

continue;

if(j-1>=0 && s[i][j-1]==list[k])

continue;

if(j+1<=n-1 && s[i][j+1]==list[k])

continue;

if(i+1<=n-1 && s[i+1][j]==list[k])

continue;

s[i][j]=list[k];

return ;

}

}

int main()

{

int n,flag=0;

while(~scanf("%d",&n))

{

if(flag)cout<<endl;

char s[maxn][maxn];

for(int i=0;i<n;i++)

cin>>s[i];

for(int i=0;i<n;i++)

for(int j=0;j<n;j++)

if(s[i][j]=='.')

fill(s,i,j,n);

for(int i=0;i<n;i++)

cout<<s[i]<<endl;

flag=1;

}

return 0;

}

相关文章

  • 1101: 填充正方形

    Time Limit:1 SecMemory Limit:128 MB Submit:463Solved:157 ...

  • Python初试-turtle

    1、正方形 2、五边形 3、边框颜色 4、填充颜色 5、五角星 6、正方形圈 7、同心圆 8、填充颜色同心圆

  • AI绘制立体镂空字-b

    ·建立黑底矩形,Ctrl+2锁定。按shift拖出一个正方形,白色描边,无填充。 ·效果-3D-等角左方,110p...

  • 1101

    一个月前我看了最后一场烟花的浪漫,往昔的回忆以超过时间的速度趟过正如那场绚烂的烟花,连灰烬也被之后的阴雨冲...

  • 1101

    字典-其他 infos1={'sid':376, 'sname':'任盈盈', 'age':21, 'hobby'...

  • 1101

    机会少,眼界窄,放不开! 不相信,不认同,不去做!

  • 1101

    关于这份礼物的准备,我没有想太多,第一次为男生准备礼物(段伟斌,你真的是个幸福的boy,为了这份礼物我绞尽脑汁),...

  • 1101

    他嘴边的空气里蠕动着心里所想的话,汇聚成一个美丽的泡沫。然而他却没有勇气吹破它。

  • 1101

    “每天认真洗脸,多读书,按时睡,少食多餐。变得温柔,大度,继续善良,保持爱心。不在人前矫情,四处诉说以求宽慰,而是...

  • 1101

    昨天下午,去找老板聊了一会,然后就有了,我自觉今年最虚伪的一次谈话。 我和他说有人找我做点儿买卖,以后就算正式脱离...

网友评论

      本文标题:1101: 填充正方形

      本文链接:https://www.haomeiwen.com/subject/ijtamqtx.html