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

Posted 红洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[2016-03-19][UVA][11520][Fill the Square]相关的知识,希望对你有一定的参考价值。

  • 时间:2016-03-19 14:52:10 星期六

  • 题目编号:[2016-03-19][UVA][11520][Fill the Square]

  • 题目大意:给定n<=10 的不完全矩阵,求填充完整矩阵,使得相邻的字母不同,并且字典序最小,输出最终的矩阵

  • 方法:从左到右,从上到下,每个空格枚举’A’-‘Z’的所有情况,满足就跳出

  1. #include <cstdio>
  2. using namespace std;
  3. #define FOR(x,y,z) for(int (x)=(y);(x)<(z);++(x))
  4. const int maxn = 10 + 10;
  5. char m[maxn][maxn];
  6. int main(){
  7. int t,cntcase = 0,n;
  8. scanf("%d",&t);
  9. while(t--){
  10. scanf("%d",&n);getchar();
  11. FOR(i,0,n) gets(m[i]);
  12. FOR(i,0,n){
  13. FOR(j,0,n){
  14. if(m[i][j] == ‘.‘){
  15. for(char ch = ‘A‘;ch <= ‘Z‘;++ch){
  16. if(i > 0 && m[i - 1][j] == ch) continue;
  17. if(i < n-1 && m[i + 1][j] == ch) continue;
  18. if(j > 0 && m[i][j - 1] == ch) continue;
  19. if(j < n - 1 && m[i][j + 1] == ch) continue;
  20. m[i][j] = ch;break;
  21. }
  22. }
  23. }
  24. }
  25. printf("Case %d:\n",++cntcase);
  26. FOR(i,0,n) puts(m[i]);
  27. }
  28. return 0;
  29. }




以上是关于[2016-03-19][UVA][11520][Fill the Square]的主要内容,如果未能解决你的问题,请参考以下文章

UVA 11520 填充正方形

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

UVa11520 Fill the Square (字典序枚举)

UVA - 11520 - Fill the Square(贪心)

[2016-03-19][UVA][11462][Age Sort]

[2016-03-19][UVA][11549][Calculator Conundrum]