题目: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. NSS_05 数据访问选型

    在数据访问层上很想用orm框架, 选用Nhibernate或ef, 可以直接操作类对象, 避免转换, 更加的面向对象,更重要的是开发起来就方便多了. 但是从网上了解到这些框架太高级了, 用得不好到时会 ...

  2. visifire3.6.8 去水印方法

    visifire 很NB的一套开源图表 不多介绍 详询google 3.0以下版本可以直接继承Chart类 override 加水印的函数就可以, 3.0以上版本需要自己编译源代码 这个水印函数藏得有 ...

  3. DataGridView导入导出excel

    DataGridView导出到Excel #region 方法一 DateGridView导出到csv格式的Excel /// <summary> /// 导出数据到Excel.常用方法, ...

  4. NavigationBar的简单设置

    http://blog.csdn.net/hufeng825/article/details/7643532#) .Label属性设置 titleLabel = [[UILabel alloc] in ...

  5. Png图片的透明部分穿透测试

           private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mou ...

  6. 数据的增量更新之EXISTS

    有时候需要实现是数据的增量更新,因为更新全量会带来时间跟数据库资源的浪费,还有可能是数据出现冗余,所以需要使用增量数据同步,下面是一个数据增量同步的小实例. ---drop table A CREAT ...

  7. 16、WPF中的命令

    一.前言 事件的作用是发布.传播一些信息,消息送达接收者,事件的使命就算完成了,至于如何响应事件送来的消息事件并不做规定,每个接收者可以使用自己的行为来响应事件,也就是说事件不具有约束力.命令能够在代 ...

  8. python之setattr,getattr,hasattr

    可以使用setattr(), getattr(), hasattr()动态对实例进行操作. 相当于Java中的反射机制, 或者更确切地, 像JavaScript中属性操作. 具体属性: __dict_ ...

  9. python之类私有成员

    python类的成员前加双下划线"__", 则被看作"私有"成员. 实例不能简单地通过<instance>.<name>来访问. 但py ...

  10. CentOS服务器Http压力测试之ab

    ab的全称是Apache Bench,是Apache自带的网络压力测试工具,相比于LR.JMeter,是我所知道的 Http 压力测试工具中最简单.最通用的. ab命令对发出负载的计算机要求很低,不会 ...