ACM Sudoku
Input
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的更多相关文章
- 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 ...
- ACM : POJ 2676 SudoKu DFS - 数独
SudoKu Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu POJ 2676 Descr ...
- ACM: ICPC/CCPC Sudoku DFS - 数独
Sudoku Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/65535K (Java/Other) Total Submis ...
- 牛客网暑期ACM多校训练营(第七场)J题(Sudoku Subrectangles)题解
一.题意 给定一个高度为$n$,宽度为$m$的字母矩形(有大写和小写字母,共$52$种),问里面有多少个子矩形是“数独矩形”.数独矩形是指,该矩形内每一行内元素都不相同,每一列内元素也不相同. 二.思 ...
- ACM学习历程—UESTC 1222 Sudoku(矩阵)(2015CCPC H)
题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目大意就是构造一个行列和每个角的2*2都是1234的4*4矩阵. 用dfs暴力搜索,不过需要每一步进 ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- HDU - 5547 Sudoku(数独搜索)
Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny game himself ...
- hdu1426 Sudoku Killer
Sudoku Killer Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
- HDU 5547 Sudoku(DFS)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5547 题目: Sudoku Time Limit: 3000/1000 MS (Java/Others ...
随机推荐
- python 资产管理
python 资产管理 一.Agent 方式 1.这个方法的优点:使用简单,速度快,适合服务器较多场景使用,缺点:服务器比较占资源,性能会变低. 2.使用Agent的前提条件是客户端(服务器)特别多的 ...
- spring boot 系列之三:spring boot 整合JdbcTemplate
前面两篇文章我们讲了两件事情: 通过一个简单实例进行spring boot 入门 修改spring boot 默认的服务端口号和默认context path 这篇文章我们来看下怎么通过JdbcTemp ...
- linux添加超级用户
创建super账号 useradd testuser 创建用户testuser passwd testuser 给已创建的用户testuser设置密码 如果需要让此用户有root权限,执行命令: ro ...
- Menu-右键弹出菜单
#右键弹出菜单 from tkinter import * root=Tk() def callback(): print('我被调用了') menubar =Menu(root) menubar.a ...
- Vue项目模板--和--webpack自动化构建工具的---项目打包压缩使用
[首先安装node.js]: 1. 从node.js官网下载并安装node,安装过程很简单. 2. npm 版本需要大于 3.0,如果低于此版本需要升级它: # 查看版本 npm -v2.3.0 #升 ...
- WPF中自定义GridLengthAnimation
需求 我们想在编辑一个列表中某一个条目时,将编辑的详情内容也放置当前面,比如右侧. 可以通过将一个Grid,分成两个Cloumn,动态调整两个Cloumn的Width,就可以实现这个需求. 我们知道, ...
- myeclipse自动添加注释
开发需要,新建类的时候,需要加自己的名字,每次都要自己写,嫌麻烦,修改一下myeclipse配置文件即可 打开window---preferences 选中 new Java files 点击edit ...
- scrapy下载图片到自己的目录,创建缩略图,存储入库
环境和工具:python2.7,scrapy 实验网站:http://www.27270.com/tag/333.html 爬去所有兔女郎图片,下面的推荐需要过滤 逻辑:分析网站信息,下载图片和入库 ...
- [BZOJ]4755: [Jsoi2016]扭动的回文串
Time Limit: 10 Sec Memory Limit: 512 MB Description JYY有两个长度均为N的字符串A和B. 一个"扭动字符串S(i,j,k)由A中的第i ...
- NOIP2014-5-17模拟赛
Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一届的学弟学妹,邪恶的chenzeyu97发现一位学弟与他同名,于是他当起了善良的学长233 "来来来,学 ...