UVA 11520 填充正方形

Posted cyd2014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 11520 填充正方形相关的知识,希望对你有一定的参考价值。

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2515

http://7xjob4.com1.z0.glb.clouddn.com/c6a2a6f54f5a6c2cae2c82df2ec552f7

 

题意:填已有字母的格子,使相邻格子字母不同,使字典序尽量小

思路:从小到大排,检验是否可行

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int n;
 5 char grid[15][15];
 6 
 7 int main()
 8 {
 9     int T,i,j,cas=1;
10     scanf("%d",&T);
11     while(T--)
12     {
13         scanf("%d",&n);
14         for(i=0;i<n;i++)
15         {
16             scanf("%s",grid[i]);
17         }
18         for(i=0;i<n;i++)
19         {
20             for(j=0;j<n;j++)
21             {
22                 if(grid[i][j]==\'.\')
23                 {
24                     for(char ch=\'A\';ch<=\'Z\';ch++)
25                     {
26                         bool flg=true;
27                         if(i-1>=0 && grid[i-1][j]==ch)  flg=false;
28                         if(i+1<n && grid[i+1][j]==ch)   flg=false;
29                         if(j-1>=0 && grid[i][j-1]==ch)  flg=false;
30                         if(j+1<n && grid[i][j+1]==ch)   flg=false;
31                         if(flg)
32                         {
33                             grid[i][j]=ch;
34                             break;
35                         }
36                     }
37                 }
38             }
39         }
40 
41         printf("Case %d:\\n",cas++);
42         for(i=0;i<n;i++)
43         {
44             printf("%s\\n",grid[i]);
45         }
46     }
47     return 0;
48 }
View Code

 

以上是关于UVA 11520 填充正方形的主要内容,如果未能解决你的问题,请参考以下文章

[2016-03-19][UVA][11520][Fill the Square]

Uva 11520 - Fill the Square 贪心 难度: 0

UVa11520 Fill the Square (字典序枚举)

Uva 填充正方形

UVA - 11520 - Fill the Square(贪心)

习题 7-6 UVA - 12113Overlapping Squares