【POJ2676】sudoku 搜索】的更多相关文章

做了很久还是参考了别人的答案orz,其实也不难啊.我要开始学一下怎么写搜索了... 题目链接:poj2676 Sudoku 题解:暴力搜索,DFS每个空白格子所放数字. #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; ][];//row_f[i][j]=1表示第i行已经放了…
题目链接:http://poj.org/problem?id=2676 题意:9*9的方格,0代表没数字,其他代表数字,请在格子中填入1~9的数字,使得在每行,每列和每个3*3的方块中,1~9的数字每个都出现一次. 如果解不唯一输出任意一组即可. 思路:只要满足上诉条件,暴力搜就可以通过了. 代码: #include<iostream> #include<cstring> using namespace std; ][]; ///九宫格 ][]; ///row[i][x] 标记在第…
按照每一行每一列去填数,当填到每一行的第9列时,开始填下一行. 代码如下: #include <cstdio> #include <algorithm> #include <iostream> #include <memory.h> #define cls(a,b) memset(a,b,sizeof(a)) using namespace std; char s[10][10]; int map[10][10],row[10][10],col[10][10…
Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 24081   Accepted: 11242   Special Judge Description Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure.…
Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17953   Accepted: 8688   Special Judge Description Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure.…
DLX算法求解精确覆盖问题模板.赛场上可以参见白书. #include<cstdio> #include<cstring> #include<vector> using namespace std; const int sub[10][10]={ {0,0,0,0,0,0,0,0,0,0}, {0,1,1,1,2,2,2,3,3,3}, {0,1,1,1,2,2,2,3,3,3}, {0,1,1,1,2,2,2,3,3,3}, {0,4,4,4,5,5,5,6,6,6}…
题目链接. 题目大意: 就是数独游戏.横竖,每一个9宫方块,必须有1~9,且不重复. 分析: 直接DFS.一开始在原图上搜,会TLE.把要补全的空格,放入数组,这样就不用遍历整个图寻找要填的空格了. row, col, sq分别标记行,列,3*3方格是否重复. 话说,直接做 有人说反着搜(正着搜的意思就是从0~cnt-1,反着搜就是从cnt~0),试了试. AC代码如下: #include <cstdio> #include <iostream> #include <map&…
好题,也非常有用,犯了几个错误 1.在枚举赋值的时候,思维有个错误:当当前的赋值不能填完这个数独,应该是继续下一个循环,而不是return false 终止枚举 2.Generic Programing写错了,,,本来那个memset想写成Generic Programing的,,,然后,永远仅仅有第一组结果对 不说了,泪哈,,, #include <cstdio> #include <cstring> #include <iostream> #include <…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目(传送门) 题意概括 给出一个残缺的数独,求解.SPJ 题解 DLX + 矩阵构建  (两个传送门) 代码 #include <cstring> #include <cstdio> #include <algorithm> #include <cstdlib> #include <cmath> using namespace std; ,M=,S=N*+M; struc…
※Recorded By ksq2013 //其实这段时间写的题远远大于这篇博文中的内容,只不过那些数以百记的基础题目实在没必要写在blog上; ※week one 2016.7.18 Monday a)bzoj4034[HAOI2015 T2](树链剖分+线段树) http://blog.csdn.net/keshuqi/article/details/51944955 b)luogu1328[NOIP2014 T1]生活大爆炸版石头剪刀布(模拟) http://blog.csdn.net/k…
POJ2676 Sudoku 位运算 + 搜索.更好的优化方法:方案数最小的空格先填. 把某一位 置为 0:a &=~ (1<<n) 把某一位 置为 1:a |= (1<<n) #include <cstdio> #include <cstring> int T, f[9], g[9], h[3][3]; char buf[10]; int v[9][9], tot; inline int lowbit(int x) { return x&(…
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY…
转自:http://blog.csdn.net/shahdza/article/details/7986037 POJ3740 Easy Finding [精确覆盖基础题]HUST1017 Exact cover [精确覆盖基础]HDOJ3663 Power Stations [精确覆盖]ZOJ3209 Treasure Map [精确覆盖]HDOJ2828 Lamp [精确覆盖+重复覆盖判独]HDOJ3498 whosyourdaddy [重复覆盖]HDOJ3529 Bomberman - J…
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116…
图论 图论解题报告索引 DFS poj1321 - 棋盘问题 poj1416 - Shredding Company poj2676 - Sudoku poj2488 - A Knight's Journey poj1724 - ROADS(邻接表+DFS) BFS poj3278 - Catch That Cow(空间BFS) poj2251 - Dungeon Master(空间BFS) poj3414 - Pots poj1915 - Knight Moves poj3126 - Prim…
POJ3740     Easy Finding [精确覆盖基础题] HUST1017    Exact cover [精确覆盖基础] HDOJ3663 Power Stations [精确覆盖] ZOJ3209    Treasure Map [精确覆盖] HDOJ2828 Lamp [精确覆盖+重复覆盖判独] HDOJ3498 whosyourdaddy [重复覆盖] HDOJ3529 Bomberman - Just Search! [重复覆盖] POJ1084    Square Des…
Sudoku Problem's Link:   http://poj.org/problem?id=2676 Mean: 略 analyse: 记录所有空位置,判断当前空位置是否可以填某个数,然后直接DFS,注意从后往前搜索,时间比正向搜快很多.16ms水过 Time complexity: O(n) Source code:  // Memory Time // 1347K 0MS // by : crazyacking // 2015-04-10-14.30 #include<map>…
Sudoku is one of the metaphysical techniques. If you understand the essence of it, you will have the feeling of being immortal, laughing and laughing with joy.............................................................(audience:"We need't such a geo…
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> using namespace std; char s[10][10]; int panduan(int row,int cew) { for(int i=0;i<4;i++) { if(s[row][i]==s[row][cew]&&i!=cew) return 0; } for…
In the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgrids. For example, . 2 7 3 8 . . 1 . . 1 . . . 6 7 3 5 . . . . . . . 2 9 3 . 5 6 9 2 . 8 . . . . . . . . . . . 6 . 1 7 3 5 . 3 6 4 . . . . . . . 9 5 1 8 . . . 7 .…
本题传送门 本题知识点:深度优先搜索 + 回溯 问题就是要让我们解决一个数独问题.如果你懂得怎么玩数独的话,那就很自然想到用暴力搜索去做题.(比如我就不会,所以先WA了一发quq) 数独符合三个条件 同行里只有 1 ~ 9 这9个数字 同列里只有 1 ~ 9 这9个数字 在这9x9的方阵里有9个3x3的小方阵,每个小方阵里的9个数也只能是 1 ~ 9 注意,这每行每列每小方阵的9个数各都是1个 所以,我用了3个bool数组去存他们的状态 数据很小 2s我跑了700多ms就过了 详细可见代码 //…
POJ 3074 : Description In the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgrids. For example, . 2 7 3 8 . . 1 . . 1 . . . 6 7 3 5 . . . . . . . 2 9 3 . 5 6 9 2 . 8 . . . . . . . . . . . 6 . 1 7 4 5 . 3 6 4 . . . . .…
Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny game himself. It looks like the modern Sudoku, but smaller. Actually, Yi Sima was playing it different. First of all, he tried to generate a 4×4 board with every…
In the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgrids. For example, . 2 7 3 8 . . 1 . . 1 . . . 6 7 3 5 . . . . . . . 2 9 3 . 5 6 9 2 . 8 . . . . . . . . . . . 6 . 1 7 4 5 . 3 6 4 . . . . . . . 9 5 1 8 . . . 7 .…
题目链接:https://cn.vjudge.net/problem/HDU-5547 具体思路:对于每一位上,我们可以从1到4挨着去试, 具体判断这一位可不可以的时候,看当前这一位上的行和列有没有冲突,以及他所在的2*2的方格中有没有矛盾的. AC代码: #include <iostream> #include <string> #include <deque> #include <stack> #include<cmath> #include…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1426 题意很明确,让你解一个9*9的数独. DFS即可. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <functional> using namespace std; #define REP(i,n) for(int i…
UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vector> #include<cmath> #include<map> #include<algorithm> #include<cstring> #include<cstdio> #include<cstdlib> #include…
POJ3074 Sudoku 与POJ2676相比,这一题搜索时每一步都找到最好确定的点进行枚举 对于每行.每列.每个九宫格,都分别用一个9位二进制数保存还有那些数还可以填 对于每个位置,将其所在行.列.九宫格所对应的二进制数进行或运算即可得到该位置能填哪些数,用lowbit运算(取出最低的为1的数位)即可吧能填的数字取出. 其他见代码 #include <cstdio> #include <cstring> #include <queue> #include <…
-->Sudoku 直接中文 Descriptions: Sudoku对数独非常感兴趣,今天他在书上看到了几道数独题: 给定一个由3*3的方块分割而成的9*9的表格(如图),其中一些表格填有1-9的数字,其余的则为空白(数字0为空白).请在空白表格中填入数字1-9使得9*9表格的每行.每列.每个3*3块内无重复数字.  Input 第一行输入一个整数T,表示样例数量.对于每个样例, 一共9行, 表示数独表格的每一行.接下来每一行输入一个字符串表示数独表格的每一行的9个数字.数独表格中空白用数字0…
#include<iostream> using namespace std; bool heng(int **sudo, int a, int b, int value) { bool flag = true; for(int i=0; i<9; i++) { if(sudo[a][i]==value) { flag = false; } } return flag; } bool shu(int **sudo, int a, int b, int value) { bool flag…