简单的dfs,主要就是每个?处填的值是否满足条件的判断。这道题感觉考察的是输出格式的控制。

#include"iostream"
#include"stdio.h"
#include"algorithm"
#include"cmath"
#include"string.h"
#include"string"
#define mx 1005
using namespace std;
int shudu[][];
int num,icase;
bool flag;
struct node
{
int x,y;
}position[mx]; bool check(int num,int cur)
{
int i,j;
for(i=;i<;i++)
{
if(i==position[cur].x) continue;
if(num==shudu[i][position[cur].y]) return false;
}
for(j=;j<;j++)
{
if(j==position[cur].y) continue;
if(num==shudu[position[cur].x][j]) return false;
}
int xx=position[cur].x,yy=position[cur].y;
xx=(xx/)*;yy=(yy/)*;
for(i=xx;i<xx+;i++)
{
for(j=yy;j<yy+;j++)
{
if(i==position[cur].x&&j==position[cur].y) continue;
if(num==shudu[i][j]) return false;
}
}
return true;
}
void dis()
{
if(icase++) cout<<endl;
for(int i=;i<;i++)
{
cout<<shudu[i][];
for(int j=;j<;j++)
cout<<' '<<shudu[i][j];
cout<<endl;
}
}
void dfs(int step)
{
if(flag) return;
if(step==num)
{
dis();
flag=true;
return;
}
for(int i=;i<=;i++)
{
if(check(i,step))
{
shudu[position[step].x][position[step].y]=i;
dfs(step+);
shudu[position[step].x][position[step].y]=;
}
}
}
int main()
{
int i,j;
icase=;
char s[];
while(scanf("%s",s)!=EOF)
{
flag=false;
num=;
if(s[]=='?')
{
position[num].x=;position[num++].y=;shudu[][]=;
}
else shudu[][]=s[]-'';
for(i=;i<;i++)
{
for(j=;j<;j++)
{
if(i==&&j==) continue;
scanf("%s",s);
if(s[]=='?')
{
position[num].x=i;position[num++].y=j;shudu[i][j]=;
}
else
{
shudu[i][j]=s[]-'';
}
}
}
dfs();
}
return ;
}

hdu Sudoku Killer的更多相关文章

  1. hdu 1426:Sudoku Killer(DFS深搜,进阶题目,求数独的解)

    Sudoku Killer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  2. HDU 1426 Sudoku Killer(dfs 解数独)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1426 Sudoku Killer Time Limit: 2000/1000 MS (Java/Oth ...

  3. hdu 1426 Sudoku Killer (dfs)

    Sudoku Killer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  4. P - Sudoku Killer HDU - 1426(dfs + map统计数据)

    P - Sudoku Killer HDU - 1426 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为 ...

  5. hdu1426 Sudoku Killer

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

  6. Sudoku Killer

    Problem Description 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行 ...

  7. HDU1426 Sudoku Killer(DFS暴力) 2016-07-24 14:56 65人阅读 评论(0) 收藏

    Sudoku Killer Problem Description 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会 ...

  8. HDU 6143 - Killer Names | 2017 Multi-University Training Contest 8

    /* HDU 6143 - Killer Names [ DP ] | 2017 Multi-University Training Contest 8 题意: m个字母组成两个长为n的序列,两序列中 ...

  9. Steam 游戏 《Sudoku Universe(数独宇宙)》、《Sudoku Killer(数独杀手)》、《Sudoku Jigsaw(数独拼图)》数字位置解析 ---------C# 数独程序解析(2020年寒假小目标11)

    日期:2020.02.11 博客期:151 星期二 今天,准备肝一个 C# 的数独读写工具(汇编语言也在努力学习命令方法中...),这三个游戏我早就买下了,一直放在 Steam 库里积灰,看着它的成就 ...

随机推荐

  1. 汇编学习(六)——代码转换程序

    (一)逻辑运算指令 一.双操作数逻辑运算指令 1.指令格式: AND dst,src ; "与"运算, OR dst,src ; "或"运算 XOR dst,s ...

  2. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  3. css的重置和原子类的使用

    @charset "utf-8";/* Reset Definitions*/body, div, p, a, ul, ol, li, dl, dt, dd, h1, h2, h3 ...

  4. DSP using MATLAB示例 Example3.5

    代码: n = [0:10]; x = (0.9*exp(j*pi/3)).^n; % x(n) = k = -200:200; w = (pi/100)*k; % [0,pi] axis divid ...

  5. PHP 下载简历

    下载简历:先生成html模版,然后在下载转化为word格式: 获取数据方法: 先获取数据,然后开启缓存,写入数据,关闭缓存:然后下载成word: /** * 下载简历--简单 * @author La ...

  6. MongoDB 入门之基础 DCL

    此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...

  7. EF框架step by step(3)—Code-First

    CodeFirst是EF框架的第三种方式,也是最为复杂一种方式,本文将以EF4.1版本为基础,简要讲解一下用法,同时,也介绍DbContext的用法. 本文采用的示例仍然是前两篇采用的博客用户的示例. ...

  8. unity awake start 的区别

    void Awake (){ } //初始化函数,在游戏开始时系统自动调用.一般用来创建变量之类的东西. void Start(){ } //初始化函数,在所有Awake函数运行完之后(一般是这样,但 ...

  9. 图解Storm

    问题导读:1.你认为什么图形可以显示hadoop与storm的区别?(电梯)2.本文是如何形象讲解hadoop与storm的?(离线批量处理.实时流式处理)3.hadoop map/reduce对应s ...

  10. pig相关

    1. 重命名pig job name: 在Pig脚本中的一开始处,写上这一句: set job.name 'This is my job'; 2. 设置pig参数: 允许pig时,输入如下: pig ...