问题 B: 数独(九宫格经典问题+dfs)

题目描述

这个游戏只有一个规则:
将格子填满使得每一行,每一列,和每一个小的九宫格,恰好包含1-9这9个数字

正是由于规则简单而又变化多端,数独一时间风靡全球。
现在,我们希望你能编写一个程序解决数独问题。

输入

输入数据一共9行,每行有9个字符。
输入数据描述了一个待解决的数独,其中,“?”表示数独中的空缺。
我们的输入数据总保证有唯一解。

输出

输出一共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)相关推荐

  1. 九宫怎么排列和使用_开心数独:好友都在玩的数独九宫格小游戏,居家无聊杀时间必备!...

    今日游戏推荐 开心数独 关键词:休闲益智.数独.2048.烧脑.数字推理.脑力游戏 游戏简介:数独九宫格,趣味数字谜题小游戏 游戏特色 <开心数独>游戏提供了关卡.随机.四宫.九宫多种玩法 ...

  2. 【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 ...

  3. USACO 1.4 Mother's Milk 母亲的牛奶(经典的dfs倒水问题)

    [USACO1.4.4]Mother's Milk 母亲的牛奶 Time Limit:10000MS  Memory Limit:65536K Total Submit:42 Accepted:27  ...

  4. 数独(一道经典的dfs题目)

    数独 数独是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得图中每行.每列.每个 3×3 的九宫格内数字 1∼9 均恰好出现一次. 请编写一个程序填写数独. 输入格式 输入包含多组测试用例 ...

  5. 数独 九宫格 小学奥数

    在处理到小学 如下 数独问题时 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 ...

  6. 徐松亮算法教学-基于C语言的数独(九宫格)求解(含多解和解数统计)

    版权声明:本文为博主徐松亮的原创作品,未经允许不得转载,多谢支持!QQ:5387603 推荐点击此链接:欢迎进入徐松亮博客一站式导航搜索(随时更新) 目录 一,前言 二,开发环境 电脑系统 编译器 编 ...

  7. 一段代码,求解数独(九宫格)游戏

    数独(Sudoku)游戏是从1-9共9个数字中,装在3x3x3x3的单元格内 每个小的3x3内的数值只能重复一遍,同时每行及每列的数值也只能重复一遍 每个单元格都必须有数值,不能留空 解法简介: 创建 ...

  8. leetcode刷题随笔数独是否合法利用dfs求数独的解

    最近看了一两篇关于leetcode刷题的总结,大体意思就是尽量不要使用ide(lll¬ω¬)然后默写代码保证bug free,这tm就让人很蒙蔽了,lz一直是用visual studio ,有时候程序 ...

  9. java 九宫格数独_Java web - 数独九宫格游戏攻略

    分享游戏攻略,源代码集集:- String path = request.getContextPath(); String basePath = request.getScheme()+": ...

最新文章

  1. size_t和int区别
  2. HDU 4832(DP+计数问题)
  3. 企业实战之分布式锁方案一步步的演变历程!,Java数据库索引面试题
  4. ASP.NET 2.0 解决了 Code-Behind 需要控件声明同步的问题
  5. 跨域解决请求限制(script标签)(热门搜索出现对应的词条)
  6. 判断字符串格式_Python基础教程,第四讲,字符串详解
  7. css基础知识汇总7
  8. [ExtJs6]随记--去除extjs trial水印
  9. html+移动端图片点击放大,移动端点击图片放大特效PhotoSwipe.js插件实现
  10. vue项目使用i18n插件实现多语言切换功能
  11. vue路由守卫的执行顺序
  12. MacBook 快捷键
  13. 重装mac系统 未能与恢复服务器取得联系,进入 macOS 系统恢复模式 – 重新安装 macOS 系统...
  14. 泛微OA流程action 之 ACTION 封装
  15. 计算机表格求和乘公式,在EXCEL中怎么设置公式求乘积、求和
  16. 【品高云7年】四、生产运行支撑到底对云有什么需求
  17. 下载apk到本地,安装遇到的解析包时出现错误的分析
  18. window10右下角 天气 关闭
  19. RiskCloud双控平台(有效分享HAZOP软件篇)
  20. 基于分段式随机惯性权重和最优反馈机制的鲸鱼优化算法

热门文章

  1. 禁止用户修改计算机的桌面背景,win10系统设置禁止别人更改桌面背景的解决技巧...
  2. VSCode插件的默认位置修改
  3. yapi漏洞挂马程序chongfu.sh处理
  4. 使windows和linux中的ubuntu位于同一网段
  5. 不识庐山真面目,只缘身在此山中!
  6. CTF-攻防世界-Reverse-(simple-check-100)
  7. 身份证号提取年龄方法python_身字的意思、身的繁体字、身的笔顺笔画、身字部首和繁体字身的意思...
  8. 面试官:MySQL事务的隔离性是如何实现的?
  9. Oracle数据文件scn不一致,控制文件与数据文件头SCN不一致导致数据库无法启动故障处理...
  10. Ubuntu创建和编译文件