填格子

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

在一个n*n格子里边已经填了部分大写字母,现在给你个任务:把剩下的格子也填满大写字母,要求任意两个相邻的格子中的字母不一样。

Input:

输入有多组数据。第一行输入T,表示有T组数据。以下每组第一行输入为整数 n (n<=10).下面接着输入有大写字母‘A~Z’或者'.'组成的 n * n 的方格。

Output:

对于每一组数据,输出填满字母后的网格。若答案有多组,输出按从左到右从上到下字典序最小的一组(例如:‘abc...’字典序小于'abd...')。

Sample Input:

2
3
...
...
...
4
..B.
B...
...B
.B..

Sample Output:

Case 1:
ABA
BAB
ABA
Case 2:
ACBA
BACD
ACAB
CBCA
解题思路:简单暴力枚举,只要当前点是'.',那么就查看周围上下左右四个点是否有已被填写的字母(从'A'枚举到'Z',这样就能保证空格填写的字符是最小的字母),水过!
AC代码:
 #include<bits/stdc++.h>
using namespace std;
char s[][];int t,n;
int main(){
while(cin>>t){
for(int g=;g<=t;++g){
cin>>n;getchar();
for(int i=;i<n;++i)
for(int j=;j<n;++j)
cin>>s[i][j];
for(int i=;i<n;++i){
for(int j=;j<n;++j){
for(char k='A';k<='Z';++k){
if(s[i][j]=='.'){
if(i->=&&s[i-][j]==k)continue;//上
if(i+<n&&s[i+][j]==k)continue;//下
if(j->=&&s[i][j-]==k)continue;//左
if(j+<n&&s[i][j+]==k)continue;//右
s[i][j]=k;
}
}
}
}
cout<<"Case "<<g<<":"<<endl;
for(int i=;i<n;++i){
for(int j=;j<n;++j)
cout<<s[i][j];
cout<<endl;
}
}
}
return ;
}

ACM_填格子的更多相关文章

  1. 【BZOJ】2172: Mario填格子

    题意 \(3 * 3\)的网格,给出左上角的数字\(m\)和右下角的数字\(m\),如果当前格子有数字\(x\),格子左边有个数字\(y\),格子上面有个数字\(z\),则\(y|x, z|x\).格 ...

  2. 动态规划-填格子问题 Domino and Tromino Tiling

    2018-09-01 22:38:19 问题描述: 问题求解: 本题如果是第一看到,应该还是非常棘手的,基本没有什么思路. 不妨先从一种简化的版本来考虑.如果仅有一种砖块,那么,填充的方式如下.

  3. 填格子3*N的方框使用2*1的矩形进行填充

    考虑每个位置的前一个状态 可以发现有 我们分别给他们编号 假设 现在填充到了i+1行,我们可以发现从i行可以通过填充转到i+1行的状态 第i行第j列表示 可以 从上一个转态 j 可以到达这个状态的j ...

  4. NOI模拟题4 Problem C: 填格子(board)

    Solution 首先我们要有敏锐的直觉: 我们将每一列中不选哪种颜色看作是一个序列, 则我们发现这个序列要求相邻两位的颜色不同. 我们还发现, 一个这样的序列对应两种不同的合法的棋盘, 因此统计合法 ...

  5. 使用GridVIew显示Gantt(甘特图),动态增减列

    说明:本例是做了工厂的排机报表 一.根据查询日期初始化GridView列 private void IniGridView(DateTime p_DateS,DateTime p_DateE) { / ...

  6. [日常训练]常州集训day7

    T1 Description 给定一个序列,初始为空.依次将$1-n$插入序列,其中$i$插到当前第$a_i$个数的右边($a_i=0$表示插到序列最左边).求最终序列. Input 第一行一个整数$ ...

  7. POJ 1020 Anniversary Cake(DFS)

    Anniversary Cake Time Limit: 1000MSMemory Limit: 10000KB64bit IO Format: %I64d & %I64u Submit St ...

  8. BZOJ2303 APIO2011方格染色(并查集)

    比较难想到的是将题目中的要求看做异或.那么有ai,j^ai+1,j^ai,j+1^ai+1,j+1=1.瞎化一化可以大胆猜想得到a1,1^a1,j^ai,1^ai,j=(i-1)*(j-1)& ...

  9. 浅入 dancing links x(舞蹈链算法)

    abastract:利用dancing links 解决精确覆盖问题,例如数独,n皇后问题:以及重复覆盖问题. 要学习dacning links 算法,首先要先了解该算法适用的问题,精确覆盖问题和重复 ...

随机推荐

  1. vuex----------state的基础用法

    先使用vue cli构建一个自己的vue项目 1.npm i -g vue-cli 2.vue init webpack sell (sell是你的项目名) 3.一路回车(在这个过程中会提示你是否安装 ...

  2. Hdu 5806 NanoApe Loves Sequence Ⅱ(双指针) (C++,Java)

    Hdu 5806 NanoApe Loves Sequence Ⅱ(双指针) Hdu 5806 题意:给出一个数组,求区间第k大的数大于等于m的区间个数 #include<queue> # ...

  3. AD7606

    在只给芯片的RANGE和PAR_SER引脚上电(不给芯片加电)的时候,芯片严重发热. 改回给芯片加电,发热消失,芯片正常工作,芯片没有损坏. 版权声明:本文为博主原创文章,未经博主允许不得转载.

  4. Maven_在Eclipse中执行Maven命令

  5. 【19】AngularJS 应用

    AngularJS 应用 现在是时候创建一个真正的 AngularJS 单页 Web 应用(single page web application,SPA)了. AngularJS 应用实例 现在可以 ...

  6. 【Codeforces 582A】GCD Table

    [链接] 我是链接,点我呀:) [题意] 给你一个数组A[]经过a[i][j] = gcd(A[i],A[j])的规则生成的二维数组 让你求出原数组A [题解] 我们假设原数组是A 然后让A数组满足A ...

  7. IBOutlet loadView UIButton的subview数量 UIWebView

    IBOutlet声明的插座变量和属性一起使用的时候,在.m文件调用的是属性. 在loadView方法中获取view属性会产生循环引用问题并导致内存溢出. Control+E到行尾,Control+A到 ...

  8. JavaMail发送邮件后再通过JavaMail接收格式问题

    复杂邮件发送问题 转载请标明出处!https://www.cnblogs.com/dream-saddle/p/10978113.html 关于 JavaMail 如何发送邮件这里就不赘述了,网上有很 ...

  9. SiteMesh2-示例工程

    了解SiteMesh的最佳方法是使用它.假设SiteMesh设置在您的Web应用程序中,本教程将展示如何掌握SiteMesh最强大的方面,如下所示装饰页面: 效果发生在第2步,其中Menu.jsp页面 ...

  10. [javase学习笔记]-7.7 thiskeyword的细节与应用

    这一节我们接着上一节来继续学习thiskeyword. 我们之前在7.5节中的构造函数应注意的细节中提到过一个细节就是构造函数能够调用一般函数,但一般函数不能直接调用构造函数.可是我们没有深究构造函数 ...