Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny game himself. It looks like the modern Sudoku, but smaller.

Actually, Yi Sima was playing it different. First of all, he tried to generate a 4×44×4 board with every row contains 11 to 44 , every column contains 11 to 44 .
Also he made sure that if we cut the board into four 2×22×2

pieces, every piece contains 11

to 44

.

Then, he removed several numbers from the board and gave it to another guy to recover it. As other counselors are not as smart as Yi Sima, Yi Sima always made sure that the
board only has one way to recover.

Actually, you are seeing this because you've passed through to the Three-Kingdom Age. You can recover the board to make Yi Sima happy and be promoted. Go and do it!!!

Input

The first line of the input gives the number of test cases, TT

(1≤T≤1001≤T≤100

). TT

test cases follow. Each test case starts with an empty line followed by 44

lines.
Each line consist of 44

characters. Each character represents the number in the corresponding cell (one of 1, 2, 3, 4). * represents that number was removed by Yi Sima.

It's guaranteed that there will be exactly one way to recover the board.

Output

For each test case, output one line containing Case #x:, where xx

is the test case number (starting from 11

).
Then output 44

lines with 44

characters each. indicate the recovered board.

Sample Input

3

****
2341
4123
3214 *243
*312
*421
*134 *41*
**3*
2*41
4*2*

Sample Output

Case #1:
1432
2341
4123
3214
Case #2:
1243
4312
3421
2134
Case #3:
3412
1234
2341
4123

题意:一个4*4的矩阵,满足每个数的同行同列都由1234构成的,把4*4矩阵分成4个2*2矩阵,每个矩阵的四个元素也分别
为1234。
这题就是暴力深搜。
ac代码:

 1 #include<cstdio>
2 #include<cstring>
3 #define Max 8
4 char st[Max][Max];
5 int judg(int x,int y,char i) //判断当前位置可以是什么数字
6 {
7 if(x<3&&y<3)
8 {
9 if(st[1][1]==i||st[1][2]==i||st[2][1]==i||st[2][2]==i)
10 return 0;
11 }
12 else if(x<3&&y>2)
13 {
14 if(st[1][3]==i||st[1][4]==i||st[2][3]==i||st[2][4]==i)
15 return 0;
16 }
17 else if(x>2&&y<3)
18 {
19 if(st[3][1]==i||st[3][2]==i||st[4][1]==i||st[4][2]==i)
20 return 0;
21 }
22 else if(x>2&&y>2)
23 {
24 if(st[3][3]==i||st[3][4]==i||st[4][3]==i||st[4][4]==i)
25 return 0;
26 }
27 for(int k=1;k<=4;k++)
28 {
29 if(st[x][k]==i||st[k][y]==i)
30 return 0;
31 }
32 return 1;
33 }
34 void dfs(int x,int y)
35 {
36 if(x==5)
37 {
38 for(int i=1;i<=4;i++)
39 printf("%s\n",st[i]+1);
40 return ;
41 }
42 if(st[x][y]!='*')
43 {
44 if(y==4)
45 dfs(x+1,1);
46 else
47 dfs(x,y+1);
48 }
49 else
50 {
51 for(int i=1;i<=4;i++)
52 {
53 if(judg(x,y,i+'0'))
54 {
55 st[x][y]=i+'0';
56 if(y==4)
57 dfs(x+1,1);
58 else
59 dfs(x,y+1);
60 st[x][y]='*'; //如果没有满足的则回溯
61 }
62 }
63 }
64 }
65 int main()
66 {
67 int t;
68 scanf("%d",&t);
69 getchar();
70 for(int i=1;i<=t;i++)
71 {
72 for(int j=1;j<=4;j++)
73 scanf("%s",st[j]+1);
74 printf("Case #%d:\n",i);
75 dfs(1,1);
76 }
77 return 0;
78 }
 

UESTC - 1222 Sudoku(深搜)的更多相关文章

  1. UESTC 1222 Sudoku

    爆搜即可 /* *********************************************** author : email :523689985@qq.com created tim ...

  2. ACM学习历程—UESTC 1222 Sudoku(矩阵)(2015CCPC H)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目大意就是构造一个行列和每个角的2*2都是1234的4*4矩阵. 用dfs暴力搜索,不过需要每一步进 ...

  3. 深搜+回溯 POJ 2676 Sudoku

    POJ 2676 Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17627   Accepted: 8538 ...

  4. 数独(深搜)(poj2726,poj3074)

    数独(深搜)数据最弱版本(poj 2676) Description Sudoku is a very simple task. A square table with 9 rows and 9 co ...

  5. HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?

    这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others)  ...

  6. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  7. 2016弱校联盟十一专场10.3---Similarity of Subtrees(深搜+hash、映射)

    题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52310 problem description Define the depth of a ...

  8. 2016弱校联盟十一专场10.2---Around the World(深搜+组合数、逆元)

    题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52305 problem  description In ICPCCamp, there ar ...

  9. 2015暑假多校联合---Cake(深搜)

    题目链接:HDU 5355 http://acm.split.hdu.edu.cn/showproblem.php?pid=5355 Problem Description There are m s ...

随机推荐

  1. JCO RFC destination

    一:登陆PI的GUI,进入事物SM59,创建T类型RFC destinations如下: AI_RUNTIME_JCOSERVER  :used for the mapping runtime, va ...

  2. Zabbix监控虚拟机服务-告警与自动恢复

    今天稍微空闲,使用下zabbix的5.0版本,目前生产环境是4.x版本 今天就只实现一个目的:监控任意一个服务(示例中监控的是docker.service),如果服务挂了,自动给恢复,先看一个动图 搭 ...

  3. Sklearn 与 TensorFlow 机器学习实战—一个完整的机器学习项目

    本章中,你会假装作为被一家地产公司刚刚雇佣的数据科学家,完整地学习一个案例项目.下面是主要步骤: 项目概述. 获取数据. 发现并可视化数据,发现规律. 为机器学习算法准备数据. 选择模型,进行训练. ...

  4. 【2020CSP-S模拟赛day5】总结

    爆零自闭赛 写在前面 于2022.11.1 这一次题目质量很高(以至于什么都不会) 再一度体验了省选Orz.比赛大体情况,刨去std, wzc神仙230分,比剩下的加起来都高.zyz神仙60分. 其余 ...

  5. Go 语言编译过程

    走进Golang之编译器原理_大愚Talk-CSDN博客 https://blog.csdn.net/hel12he/article/details/103061921 go编译器 - 知乎 http ...

  6. 解析MySQL中存储时间日期类型的选择问题

    解析MySQL中存储时间日期类型的选择问题_Mysql_脚本之家 https://www.jb51.net/article/125715.htm 一般应用中,我们用timestamp,datetime ...

  7. spring boot 启动 开启注解 加载 bean

    业务描述:创建一个cache类然后交给spring 管理. @Component @Scope("singleton") public class Cache { public C ...

  8. .params和query的区别

    用法:query要用path来引入,params要用name来引入,接收参数都是类似的,分别是this.$route.query.name和this.$route.params.name.url地址显 ...

  9. 题解 CF620E 【New Year Tree】

    有关dfs序的例题,需要有一定的位运算基础 题面 给定一个树,树上有颜色,将某一子树的颜色统一修改,求子树中颜色的数量 Solution 子树修改,子树求和,dfs序的知识(类似区间修改区间求和) 考 ...

  10. Spring听课笔记(专题一)

    Spring入门课程:https://www.imooc.com/learn/196 第0章: Spring是为解决企业应用程序开发复杂性而创建的一个Java开源框架,应用非常广泛.业内非常流行的SS ...