Uva 填充正方形

暴力出奇迹

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 
 5 const int maxn=10+5;
 6 int T,n;
 7 char S[maxn][maxn];
 8 
 9 int main()
10 {
11     cin>>T;
12     for(int kase=1;kase<=T;kase++)
13     {
14         cin>>n;
15         for(int i=0;i<n;i++)
16             for(int j=0;j<n;j++)
17                 cin>>S[i][j];
18         for(int i=0;i<n;i++)
19             for(int j=0;j<n;j++)
20                 if(S[i][j]=='.')
21                 {
22                     for(char ch='A';ch<='Z';ch++)
23                     {
24                         bool ok=true;
25                         if(i>0&&S[i-1][j]==ch) ok=false;
26                         if(i<n-1&&S[i+1][j]==ch) ok=false;
27                         if(j>0&&S[i][j-1]==ch) ok=false;
28                         if(j<n-1&&S[i][j+1]==ch) ok=false;
29                         if(ok) {S[i][j]=ch;break;}
30                     }
31                 }
32         printf("Case %d:\n",kase);
33         for(int i=0;i<n;i++)
34         {
35             for(int j=0;j<n;j++)
36                 cout<<S[i][j];
37             cout<<endl;
38         }
39     }
40     return 0;
41 }

 

转载于:https://www.cnblogs.com/InWILL/p/5560861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值