Sudoku是一个非常简单的任务。 具有9行9列的方形表被划分为9个较小的正方形3x3,如图所示。 在一些单元格中写入从1到9的十进制数字。其他单元格为空。 目标是填充空单元格,其中十进制数字从1到9,每个单元格一个数字,使得每行中每列和每个标记的3x3子方格中的所有数字将显示为1到9。 编写程序来解决给定的数独任务。

Input

输入数据将以测试用例的数量开始。 对于每个测试用例,跟随9行,对应于表的行。 在每行上,给出一个正好9个十进制数字的字符串,对应于该行中的单元格。 如果一个单元格为空,则表示为0。

Output

对于每个测试用例,您的程序应以与输入数据相同的格式打印解决方案。 空单元格必须按照规则填写。 如果解决方案不是唯一的,那么程序可能打印其中任何一个。

Sample Input

1
103000509
002109400
000704000
300502006
060000050
700803004
000401000
009205800
804000107

Sample Output

143628579
572139468
986754231
391542786
468917352
725863914
237481695
619275843
854396127
 #include<cstdio>
#include<iostream>
using namespace std;
char s[];
int sudoku[][];
bool flag;
bool ok(int n,int cur)
{
int r = n / ; //当前行
int c = n % ; //当前列
for(int j = ; j < ; j++) //枚举那一列
if(sudoku[r][j] == cur) return false;
for(int i = ; i < ; i++) //枚举那一行
if(sudoku[i][c] == cur) return false;
int x = r/ *;
int y = c/*; for(int i = x; i < x+; i++) //枚举矩阵中的元素
for(int j = y; j < y + ; j++)
if(sudoku[i][j] == cur)
return false;
return true;
} void DFS(int n)
{
if(n > || flag)
{
flag = true;
return;
}
if(sudoku[n / ][n % ]) //检查当前方格是否填数
{
DFS(n+);
if(flag) return;
}
else
{
for(int cur = ; cur <= ; cur++)
{
if(ok(n,cur))
{
sudoku[n / ][n % ] = cur;
DFS(n + );
if(flag) return;
sudoku[n / ][n % ] = ; //还原
}
}
} } int main()
{
int t;
while(cin>>t)
{
while(t--)
{
flag = false;
for(int i = ; i < ; i++)
{
/*数据输入及清洗*/
scanf("%s",s);
for(int j = ; j < ; j++)
sudoku[i][j] = (s[j] - '');
}
DFS();
for(int i = ; i < ; i++)
{
for(int j = ; j < ; j++)
printf("%d",sudoku[i][j]);
printf("\n");
}
}
}
}

ACM Sudoku的更多相关文章

  1. HDU 4069 Squiggly Sudoku(DLX)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4069 Problem Description Today we play a squiggly sud ...

  2. ACM : POJ 2676 SudoKu DFS - 数独

    SudoKu Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu POJ 2676 Descr ...

  3. ACM: ICPC/CCPC Sudoku DFS - 数独

    Sudoku Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/65535K (Java/Other) Total Submis ...

  4. 牛客网暑期ACM多校训练营(第七场)J题(Sudoku Subrectangles)题解

    一.题意 给定一个高度为$n$,宽度为$m$的字母矩形(有大写和小写字母,共$52$种),问里面有多少个子矩形是“数独矩形”.数独矩形是指,该矩形内每一行内元素都不相同,每一列内元素也不相同. 二.思 ...

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

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

  6. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  7. HDU - 5547 Sudoku(数独搜索)

    Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny game himself ...

  8. hdu1426 Sudoku Killer

    Sudoku Killer Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total ...

  9. HDU 5547 Sudoku(DFS)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5547 题目: Sudoku Time Limit: 3000/1000 MS (Java/Others ...

随机推荐

  1. 基于OpenCV单目相机的快速标定--源码、工程、实现过程

    相机的标定是所有人走进视觉世界需要做的第一件事,辣么多的视觉标定原理解释你可以随便在网上找到,这里只讲到底如何去实现,也算是给刚入门的朋友做个简单的分享. 1.单目相机标定的工程源码 首先请到同性交友 ...

  2. requests-证书验证

    import requests #response = requests.get('https://www.12306.cn') #print(response.status_code) #以上会显示 ...

  3. Http协议消息报头

    哎.不知道怎么写Http协议... 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议. HTTP基于TCP/IP通信协议来传递数据 ...

  4. 三层架构和MVC一样吗?(区别)

    首先声明:1.三层架构绝不是MVC(不一样滴) 2.三层架构可以应用于任何语言.任何技术的应用程序.                   3.而MVC只是为了解决BS应用程序视图各部分的耦合关系:他们 ...

  5. Python面向对象——基本继承

    1.基本继承图解 1.1实例化一个Contact类的对象c 1.2实例化一个Supplier类的对象s 1.3访问对象的属性 1.4访问对象s的方法 1.5类变量详解 如果从新定义c.all_cont ...

  6. JQ五星好评效果

    $(".list-txt ul").find("li").click(function(){    if($(this).index()==0){       ...

  7. Java多线程之生产者消费者

    生产者和消费者的实例: 商品类:/** * 商品类 * */public class Goods {    final int MAX_NUMBER = 30; // 最大数量    final in ...

  8. js获取设备

    总结了一个JavaScript获取当前终端类型(pc, mobile),操作系统类型,浏览器类型,浏览器版本的小工具. 个人觉得还行,测试过没有问题,能识别ie7以及以上. 1 2 3 4 5 6 7 ...

  9. Centos常用命令之:搜索

    在linux中,所有的文件都是以目录树的形式存在的.而每个发行版的文件存放之间又会有些差别. 这时候,如果我们想看某个命令或者文档的时候就必须先通过某种方式找到改文档的所在位置. 在linux中提供了 ...

  10. [HNOI 2015]亚瑟王

    Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...