题目:http://acm.hdu.edu.cn/showproblem.php?pid=1426

 #include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
char map[][];
bool row[][],list[][];
int pos[*][];
int k; int check(int v,int num)//第V个?上替换num值
{
int n,m;
if(pos[v][]>= && pos[v][]<=)
n=;
if(pos[v][]>= && pos[v][]<=)
n=;
if(pos[v][]>= && pos[v][]<=)
n=;
if(pos[v][]>= && pos[v][]<=)
m=;
if(pos[v][]>= && pos[v][]<=)
m=;
if(pos[v][]>= && pos[v][]<=)
m=;
for(int i=n;i<n+;i++)
{
for(int j=m;j<m+;j++)
{
if(map[i][j] == num+'')
return ;
}
}
return ;
}
int dfs(int v)//从第0个?开始查找
{
int i;
if(v==k)//如果全部找到返回1
return ;
for(i=;i<=;i++)
{
if(!row[pos[v][]][i] && !list[pos[v][]][i] && check(v,i))//判断同行、同列和九宫格
{
row[pos[v][]][i]=true;
list[pos[v][]][i]=true;
map[pos[v][]][pos[v][]]=i+'';
if(dfs(v+))
return ;
row[pos[v][]][i]=false;
list[pos[v][]][i]=false;
map[pos[v][]][pos[v][]]='?';
}
}
return ;
}
void Output()
{
for(int i=;i<=;i++)
{
printf("%c",map[i][]);
for(int j=;j<=;j++)
{
printf(" %c",map[i][j]);
}
printf("\n");
}
return ;
} int main()
{
int sum=;//格式问题
//freopen("in.txt","r",stdin);
while()
{
memset(row,false,sizeof(row));
memset(list,false,sizeof(list));
k=;
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
{
if(!(cin >> map[i][j]))
exit();
if(map[i][j]=='?')
{
pos[k][]=i;//记录?的x和y
pos[k++][]=j;
continue;
}
row[i][map[i][j]-'']=true;//记录同行出现的数
list[j][map[i][j]-'']=true;//记录同列出现的数
}
}
dfs();
//printf("%d\n",k);
if(sum++)
printf("\n");
Output(); }
return ;
}

hdu 1426 Sudoku Killer的更多相关文章

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

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

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

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

  3. hdu 1426 Sudoku Killer (dfs)

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

  4. HDU 1426 Sudoku Killer(搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1426 题意很明确,让你解一个9*9的数独. DFS即可. #include <cstdio> ...

  5. HDU 1426 Sudoku Killer【DFS 数独】

    自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品— ...

  6. hdu 1426 Sudoku Killer ( Dancing Link 精确覆盖 )

    利用 Dancing Link 来解数独 详细的能够看    lrj 的训练指南 和 < Dancing Links 在搜索中的应用 >这篇论文 Dancing Link 来求解数独 , ...

  7. HDU 1426 Sudoku Killer (回溯 + 剪枝)

    本文链接:http://i.cnblogs.com/EditPosts.aspx?postid=5398818 题意: 给你一个 9*9 的矩阵,同一行相邻的两个元素用一个空格分开.其中1-9代表该位 ...

  8. HUD 1426 Sudoku Killer (DFS)

    链接 : Here! 思路 : 记录下所有 "?" , 出现的位置, 然后 $DFS$ 一下, 对于每个位置来说都可以填充 $9$ 种数值, 然后对于判断填充是否合法需要三个标记数 ...

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

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

随机推荐

  1. 《samba服务搭建》RHEL6

    Samba服务不仅可以实现linux和win之间的文件共享,也可以实现linux和linux之间的共享,samba的用户只限服务端本地用户使用. 本文的环境是selinux开启的情况下配置 Samba ...

  2. Linux学习笔记之VI(VIM)编辑器

    百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1   进入和退出vi 进入:在终端命令行输入 vi ...

  3. 基于WORDPRESS+MYSQL的绿色企业主题制作全过程

    基于WORDPRESS+MYSQL的绿色企业主题制作全过程基于WORDPRESS+MYSQL的绿色企业主题制作全过程基于WORDPRESS+MYSQL的绿色企业主题制作全过程基于WORDPRESS+M ...

  4. composer安装yii2或者laravel报错

    大概的信息就是提示让登陆github,然后就报错了 Could not fetch https://api.github.com/authorizations, enter your GitHub c ...

  5. 单例模式C#

    首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了, 比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个, 这里就可以通过单例模式来避免两个打印作业同时输 ...

  6. Python默认模块 os和shutil 实用函数

    os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 ' ...

  7. Ubuntu中设置环境变量详解

    1, 为单一用户:.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.打开用户主目录下的.bashrc,在这个文件中加入export PA ...

  8. 【android】uiselectoer 自动化测试

    转:http://blog.csdn.net/sasoritattoo/article/details/17579739 Android自动化测试主要分为Monkeyrunner.Rubotium.U ...

  9. 关于htmlentities 、htmlspecialchars、addslashes的使用

    1.html_entity_decode():把html实体转换为字符. Eg:$str = "just atest & 'learn to use '"; echo ht ...

  10. UML 小结(1)- 整体阐述

    前言:              UML( Unified Modeling Language) 又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形 ...