数独题 HDU - 1426
题意:给你一个数独,让你求出它的解
这个题是运用DFS的(很好的一道题 可以提高自己的思维能力)
哈理工也有一道数独题---- 数独题
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<bitset>
#include<math.h>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define pi acos(-1)
#define close ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
using namespace std;
typedef long long ll;
const int MAX_N=1000000+50;
const int INF=0x3f3f3f3f;
const double EPS = 1e-10;
ll mod = 1e9+7;bool flag ;
int mapp[11][11];bool Check(int num,int x){int hang = num / 9;int lie = num % 9;for(int i = 0; i < 9; i++){if(mapp[hang][i] == x){return false;}}for(int i = 0; i < 9; i++){if(mapp[i][lie] == x){return false;}}int fhang = (hang / 3) * 3;int flie = (lie / 3) * 3;for(int i = fhang; i < fhang + 3; i++){for(int j = flie; j < flie + 3; j++){if(mapp[i][j] == x){return false;}}}return true;
}void dfs(int num){if(num > 80 || flag){flag = true;return ;}int hang = num / 9;int lie = num % 9;if(mapp[hang][lie] != 0){dfs(num + 1);if(flag) return;}else{for(int i = 1; i <= 9; i++){if(Check(num,i)){mapp[hang][lie] = i;dfs(num + 1);if(flag) return;mapp[hang][lie] = 0;}}}
}int main(){char s[5];while(~scanf("%s",s)){mapp[0][0] = (s[0] == '?'?0:s[0] - '0');for(int i = 1; i < 9; i++){scanf("%s",s);mapp[0][i] = (s[0] == '?'?0:s[0] - '0');}for(int i = 1; i < 9; i++){for(int j = 0; j < 9; j++){scanf("%s",s);mapp[i][j] = (s[0] == '?'?0:s[0] - '0');}}if(flag) printf("\n"); //注意 没有这个会发生PE错误 flag = false;dfs(0);for(int i = 0; i < 9; i++){for(int j = 0; j < 9; j++){if(j == 8) printf("%d\n",mapp[i][j]);else printf("%d ",mapp[i][j]);}}}return 0;
}/*********************####....#.#..###.....##....###.......###### ### ###........... #...# #...###*####### #.#.# #.#.#####*******###### #.#.# #.#.#...#***.****.*###.... #...# #...#....**********##..... ### ###....**** *****....#### ########## ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
*/
数独题 HDU - 1426相关推荐
- HDU 1426 Sudoku Killer【DFS 数独】
自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品 ...
- 数独题的生成与解决方法
数独题的生成与解决方法 参考文章: (1)数独题的生成与解决方法 (2)https://www.cnblogs.com/trav/p/10197907.html (3)https://www.code ...
- 计算机视觉 python 解图片数独题
关键词: sudoku 计算机视觉 数独 python 来源于于一张 视觉库 里的数独图片. 经过一段时间探索 终于识别出数字 并解出数独.转载请注明出处https://blo ...
- HDU 1426(数独)
刚刚看到很多人都用DFS+剪枝做数独.. 顿时不爽了, 我家DLX 何在... 不过想想确实这个搜索剪枝真的很多,不过怎么说还是DLX 快... #include <stdio.h> #i ...
- 2019广工ACM校赛决赛A题:思维题 HDU 6461 zsl 和hzy的生存挑战
2019广工校赛决赛A题.HDU 6461 http://acm.hdu.edu.cn/showproblem.php?pid=6461 题目描述 zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的 ...
- 动态规划百题 第六题 HDU - 1087
动态规划百题计划又重新开始啦 6: E - Super Jumping! Jumping! Jumping! HDU - 1087 wsw成功的在zzq的帮助下获得了与小姐姐约会的机会,同时也不用担心 ...
- HDU 1426 Sudoku Killer
数独(DFS). 非常忧伤的一道题,先是剪枝的三个数组开成[9][9]导致 越界了WA. 然后就是每两组输出之间有空行,可是最后一组后面不能输出空行.PE好多次. #include<cstdio ...
- 2014多校第一场A题 || HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
- BestCoder Round #4 前两题 hdu 4931 4932
第一题太水了.. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include< ...
- 一个斐波那契数列题 HDU 2041
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1< ...
最新文章
- 杨辉再发声明:没有及时交流工作进展,深表歉意
- oracle 10g安装
- Linux系统Python配置MySQL详细教程
- postman-持续更新
- 怎么把一台华为路由器配置为FTP服务器?
- 推荐華麗の真実的小说《The★Sakuray》
- .net大型分布式电子商务架构说明(转载来自头条)
- python之字典方法
- 记录一下免费域名和空间
- 用友u8怎么导出凭证_CASE11 用友U8导入期初档案凭证批量作废编辑自动现流(5/5)...
- java jquery提交表单数据_[Java教程]jquery实现ajax提交表单信息
- 【EI 快速检索 | 九月特邀】经济与计算机多主题国际会议
- mysql中XtraBackup备份工作机制
- linux 配置 MP3 RMVB 解码器
- 数学原理(The Principles of Mathmatics)
- 输入框input或内容区域textarea中关于光标移动问题
- 初识c语言—学习笔记
- 最终解决:win10小娜无法使用(win10 win+q 无法搜索应用程序)
- [Stata] 分类变量画直方图(频率分布)
- centos7:yum -y install gcc python36-devel bzip2-devel sqlite-devel openssl-devel readline-devel xz-d