首页 > 其他 > 详细

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

时间:2016-03-19 16:24:53      阅读:164      评论:0      收藏:0      [点我收藏+]
  • 时间: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]

原文:http://www.cnblogs.com/qhy285571052/p/d8c9f50c0f47dc45b2d1139fdfbb10b4.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!