POJ 2676 数独+dfs深搜
数独
- #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 ;
- }
POJ 2676 数独+dfs深搜的更多相关文章
- POJ 2676 数独(DFS)
Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 21612 Accepted: 10274 Specia ...
- POJ 2676 Sudoku(深搜)
Sudoku Time Limit : 4000/2000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total Submi ...
- 数独(深搜)(poj2726,poj3074)
数独(深搜)数据最弱版本(poj 2676) Description Sudoku is a very simple task. A square table with 9 rows and 9 co ...
- CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】
[编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色 ...
- DFS 深搜专题 入门典例 -- 凌宸1642
DFS 深搜专题 入门典例 -- 凌宸1642 深度优先搜索 是一种 枚举所有完整路径以遍历所有情况的搜索方法 ,使用 递归 可以很好的实现 深度优先搜索. 1 最大价值 题目描述 有 n 件物品 ...
- ACM : POJ 2676 SudoKu DFS - 数独
SudoKu Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu POJ 2676 Descr ...
- poj 2386:Lake Counting(简单DFS深搜)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18201 Accepted: 9192 De ...
- 【DFS深搜初步】HDOJ-2952 Counting Sheep、NYOJ-27 水池数目
[题目链接:HDOJ-2952] Counting Sheep Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- DFS深搜——Red and Black——A Knight's Journey
深搜,从一点向各处搜找到全部能走的地方. Problem Description There is a rectangular room, covered with square tiles. Eac ...
随机推荐
- SqlServer2008/2005数据库日志收缩
1.SQL2008数据库USE [master]GOALTER DATABASE 数据库名称 SET RECOVERY SIMPLE WITH NO_WAITALTER DATABASE 数据库名称 ...
- 生产者消费者-Java代码实现
import java.util.LinkedList; class Storage{ private static final int MAX = 100; LinkedList<Object ...
- 初见spark-02(RDD及其简单算子)
今天,我们来进入spark学习的第二章,发现有很多事都已经开始变化,生活没有简单的朝自己想去的方向,但是还是需要努力呀,不说鸡汤之类的话了, 开始我们今天的spark的旅程 一.RDD是什么 rdd的 ...
- gcc常用命令
1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成 ...
- 如何对比两个Jar包
如果对比两个jar包呢?jar 都是class 文件,我对比jar,就是想知道,它增加了删除了哪些方法.增加了哪些类,删除了哪些类. 有很多方法,你可以,反编译,然后通过beyongCompair 去 ...
- Spring mvc+hibernate+freemarker(实战)
Spring mvc+hibernate+freemarker(实战) 博客分类: Spring Spring mvchibernatefreemarkerwebjava 今天我为大家做了一个 sp ...
- atomic integer 实现
public final int getAndAddInt(Object o, long offset, int delta) { int v; do { v = getIntVolatile(o, ...
- Python SimpleHTTPServer简单HTTP服务器
搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某个目录给整个项目 ...
- Python网络编程(weekly summary1)
网络的目的是什么? 用于信息传输.接受 能把各个点.面.体的信息链接到一起 实现资源的共享 OSI模型: 应用层:提供程序服务 表示层:数据加密.优化.压缩 会话层: ...
- (原)Unreal渲染模块 源码和实例分析说明
@author:白袍小道 说明 1.由于小道就三境武夫而已,而UE渲染部分不仅管理挺大,而且牵扯技术和内容驳杂,所以才有这篇梳理. 2.尽量会按书籍和资料,源码,小模块的调试和搬山(就是敲键盘)..等 ...