问题 B: 数独(九宫格经典问题+dfs)
问题 B: 数独(九宫格经典问题+dfs)
题目描述
将格子填满使得每一行,每一列,和每一个小的九宫格,恰好包含1-9这9个数字
正是由于规则简单而又变化多端,数独一时间风靡全球。
现在,我们希望你能编写一个程序解决数独问题。
输入
输入数据描述了一个待解决的数独,其中,“?”表示数独中的空缺。
我们的输入数据总保证有唯一解。
输出
样例输入 Copy
5????7??6
?6????5?4
?834?????
???182?4?
??1???9??
?7?369???
?????543?
1?5????9?
7??2????1
样例输出 Copy
514927386
967831524
283456179
659182743
321574968
478369215
892615437
135748692
746293851
思路:dfs。符合条件继续搜,不符合递推回来。
#pragma GCC optimize(3 , "Ofast" , "inline")#include <bits/stdc++.h>#define rep(i , a , b) for(register int i=(a);i<=(b);i++)
#define per(i , a , b) for(register int i=(a);i>=(b);i--)using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int , int> pi;template<class T>
inline void read (T &x) {x = 0;int sign = 1;char c = getchar ();while (c < '0' || c > '9') {if ( c == '-' ) sign = - 1;c = getchar ();}while (c >= '0' && c <= '9') {x = x * 10 + c - '0';c = getchar ();}x = x * sign;
}const int maxn = 2e5 + 10;
const int inf = int (1e9);
const ll INF = ll (1e18);
const double PI = acos (- 1);
const int mod = 1e9+7;
const double eps = 1e-8;char s[20][20];
bool visc[10][10];
bool visr[10][10];
bool visg[10][10];
int ans[20][20];bool dfs(int x,int y) {if(x==10) return true;bool f=0;if(ans[x][y]) {if(y==9) f=dfs (x+1,1);else f=dfs (x,y+1);return f;}int cnt = (x-1)/3*3+(y-1)/3+1;rep (i,1,9) {if(!visc[x][i]&&!visr[y][i]&&!visg[cnt][i]) {visc[x][i]=1;visr[y][i]=1;visg[cnt][i]=1;ans[x][y]=i;if(y==9) f=dfs (x+1,1);else f=dfs (x,y+1);if(f) return f;visc[x][i]=0;visr[y][i]=0;visg[cnt][i]=0;ans[x][y]=0;}}return false;
}
int main () {rep (i,1,9) {scanf ("%s",s[i]+1);rep (j,1,9) {if(s[i][j]=='?') {ans[i][j]=0;continue;}else ans[i][j]=s[i][j]-'0';visc[i][ans[i][j]]=1;visr[j][ans[i][j]]=1;visg[(i-1)/3*3+(j-1)/3+1][ans[i][j]]=1;}}dfs(1,1);rep (i,1,9) {rep (j,1,9) {printf ("%d",ans[i][j]);}printf ("\n");}return 0;
}
http://www.taodudu.cc/news/show-5300940.html
相关文章:
- POJ - 3074 DancingLink 数独 九宫格
- 数独 九宫格 小学奥数
- java 九宫格数独_Java web - 数独九宫格游戏攻略
- 数独(九宫格)的高效算法
- Type interface com.msy.dao.IAccountDao is not known to the MapperRegistry.
- Fsn文件的应用场景
- 解决SpringBoot整合SpringData JPA的PagingAndSortingRepository的Sort排序时遇到的错误:has protected access in ‘org.sp
- hive报错(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory/tmp/hive/.
- FSN联合CoinEX举行的AMA圆满结束时DYDX期货TVL突破800万U
- Hadoop03
- oracle 导出 错误,【Oracle】记一次导出错误ORA-39126 ORA-21700
- Python爬虫01—请求模块
- window系统,GitLab 远程与本地 SSH 认证连接
- Sublime Text3文件栏乱码、文件内容乱码及文字大小的解决方法
- Python的模块与包
- 软件测试的自动化调试工具,DT10自动化的软件测试及调试工具
- 使用kvm创建三台能通局域网的虚拟机
- u-boot-2016.09 make编译过程分析(二)
- 频谱分析-FFT之后的那些事情
- 正点原子imx6ullUBOOT顶层Makefile学习笔记
- fsn文件 c语言,笨办法学C 练习24:输入输出和文件
- 【第八周:08/12-08/16】CNC和MaxMind城市名FSN乱码匹配
- fsn 回想_对世界的注意:不要以为“回想此消息”会起作用。 永远不会。
- FSN (dp)
- python编译 pyd 工具_avalon-fsn首页、文档和下载 - Python 编译构造工具 - OSCHINA - 中文开源技术交流社区...
- FSN文件的解析(点钞机读取钱币文件)
- 95%置信区间学习笔记
- excel 置信区间 计算_Excel中用什么函数可以算置信区间,怎么算啊?
- 均值之差的置信区间
- 标准差σ未知_均值的置信区间估计(σ未知)
问题 B: 数独(九宫格经典问题+dfs)相关推荐
- 九宫怎么排列和使用_开心数独:好友都在玩的数独九宫格小游戏,居家无聊杀时间必备!...
今日游戏推荐 开心数独 关键词:休闲益智.数独.2048.烧脑.数字推理.脑力游戏 游戏简介:数独九宫格,趣味数字谜题小游戏 游戏特色 <开心数独>游戏提供了关卡.随机.四宫.九宫多种玩法 ...
- 【HDU - 1518】Square (经典的dfs + 剪枝)
题干: Given a set of sticks of various lengths, is it possible to join them end-to-end to form a squar ...
- USACO 1.4 Mother's Milk 母亲的牛奶(经典的dfs倒水问题)
[USACO1.4.4]Mother's Milk 母亲的牛奶 Time Limit:10000MS Memory Limit:65536K Total Submit:42 Accepted:27 ...
- 数独(一道经典的dfs题目)
数独 数独是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得图中每行.每列.每个 3×3 的九宫格内数字 1∼9 均恰好出现一次. 请编写一个程序填写数独. 输入格式 输入包含多组测试用例 ...
- 数独 九宫格 小学奥数
在处理到小学 如下 数独问题时 Input1: 0 2 0 8 0 7 3 0 0 9 0 0 1 0 0 5 7 0 8 3 0 0 0 5 2 0 0 0 4 0 0 8 0 6 0 0 0 0 ...
- 徐松亮算法教学-基于C语言的数独(九宫格)求解(含多解和解数统计)
版权声明:本文为博主徐松亮的原创作品,未经允许不得转载,多谢支持!QQ:5387603 推荐点击此链接:欢迎进入徐松亮博客一站式导航搜索(随时更新) 目录 一,前言 二,开发环境 电脑系统 编译器 编 ...
- 一段代码,求解数独(九宫格)游戏
数独(Sudoku)游戏是从1-9共9个数字中,装在3x3x3x3的单元格内 每个小的3x3内的数值只能重复一遍,同时每行及每列的数值也只能重复一遍 每个单元格都必须有数值,不能留空 解法简介: 创建 ...
- leetcode刷题随笔数独是否合法利用dfs求数独的解
最近看了一两篇关于leetcode刷题的总结,大体意思就是尽量不要使用ide(lll¬ω¬)然后默写代码保证bug free,这tm就让人很蒙蔽了,lz一直是用visual studio ,有时候程序 ...
- java 九宫格数独_Java web - 数独九宫格游戏攻略
分享游戏攻略,源代码集集:- String path = request.getContextPath(); String basePath = request.getScheme()+": ...
最新文章
- size_t和int区别
- HDU 4832(DP+计数问题)
- 企业实战之分布式锁方案一步步的演变历程!,Java数据库索引面试题
- ASP.NET 2.0 解决了 Code-Behind 需要控件声明同步的问题
- 跨域解决请求限制(script标签)(热门搜索出现对应的词条)
- 判断字符串格式_Python基础教程,第四讲,字符串详解
- css基础知识汇总7
- [ExtJs6]随记--去除extjs trial水印
- html+移动端图片点击放大,移动端点击图片放大特效PhotoSwipe.js插件实现
- vue项目使用i18n插件实现多语言切换功能
- vue路由守卫的执行顺序
- MacBook 快捷键
- 重装mac系统 未能与恢复服务器取得联系,进入 macOS 系统恢复模式 – 重新安装 macOS 系统...
- 泛微OA流程action 之 ACTION 封装
- 计算机表格求和乘公式,在EXCEL中怎么设置公式求乘积、求和
- 【品高云7年】四、生产运行支撑到底对云有什么需求
- 下载apk到本地,安装遇到的解析包时出现错误的分析
- window10右下角 天气 关闭
- RiskCloud双控平台(有效分享HAZOP软件篇)
- 基于分段式随机惯性权重和最优反馈机制的鲸鱼优化算法
热门文章
- 禁止用户修改计算机的桌面背景,win10系统设置禁止别人更改桌面背景的解决技巧...
- VSCode插件的默认位置修改
- yapi漏洞挂马程序chongfu.sh处理
- 使windows和linux中的ubuntu位于同一网段
- 不识庐山真面目,只缘身在此山中!
- CTF-攻防世界-Reverse-(simple-check-100)
- 身份证号提取年龄方法python_身字的意思、身的繁体字、身的笔顺笔画、身字部首和繁体字身的意思...
- 面试官:MySQL事务的隔离性是如何实现的?
- Oracle数据文件scn不一致,控制文件与数据文件头SCN不一致导致数据库无法启动故障处理...
- Ubuntu创建和编译文件