POJ 2676 数独+dfs深搜
2024-08-28 07:51:41
数独
#include "cstdio"
#include "cstring"
#include "cstdlib"
#include "iostream"
using namespace std;
#include <cstdio>
int num,v[][],map[][];///v存储需要填的位置
bool finished;
bool judge(int x,int y,int k)
{
int i,j,it,jt;
for(i=; i<; i++)
{
if(map[i][y]==k) return false;///同行同列不能有同数字
if(map[x][i]==k) return false;
}
it=(x/)*;
jt=(y/)*;
for(i=; i<; i++)///一块内数字不能相同
for(j=; j<; j++)
if(map[i+it][j+jt]==k)
return false;
return true;
} void dfs(int k)
{
if(finished) return;
if(k>=num)
{
finished =true;
for(int i=; i<; i++)
{
for(int j=; j<; j++)
printf("%d",map[i][j]);
printf("\n");
}
}
for(int i=;i<=;i++)///1到9 9个数字
{
int x=v[k][];///填第k个空
int y=v[k][];
if(judge(x,y,i))///能填吗?
{
map[x][y]=i;
dfs(k+);///下一个数
map[x][y]=;
}
}
} int main()
{
int t;
scanf("%d\n",&t);
while(t--)
{
num=;
finished =false;
char c;
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
scanf("%c",&c);
map[i][j]=c-'';
if(map[i][j]==)
{
v[num][]=i;
v[num][]=j;
num++;
}
}
getchar();
}
dfs();
}
return ;
}
最新文章
- Javascript之confirm的用法
- oracle数据库函数之============‘’分析函数和聚合函数‘’
- MSSQLSERVER服务无法启动的解决方案
- js中的变量小例子
- TEXshade教程- 多重比对着色软件包
- JQuery Jsonp 跨域
- CSRF的防御实例(PHP)
- Python 字符串处理大全.
- Cocos2d-x单机游戏防八门神器修改数据
- Unity3D脚本中文系列教程(八)
- php实现调用微信上传照片然后保存至服务器与数据库
- Subline Text默认设置文件Preferences.sublime-settings—Default详解
- JQUERY1.9学习笔记 之属性选择器(一) 前缀选择器
- pcl1.7.2_vs2013_x64工程配置
- windows下安装DB2数据库以及使用Aqua Data Studio链接数据库
- PHP面向对象和面向过程
- SQL 概述
- Winform开发框架中的综合案例Demo
- [C++]Linux之头文件sys/types.h[/usr/include/sys]
- oracle 如何查看oracle数据库版本