链接:https://ac.nowcoder.com/acm/contest/625/E
来源:牛客网

数独是一种填数字游戏,英文名叫 Sudoku,起源于瑞士,上世纪 70 年代由美国一家数学逻辑游戏杂志首先发表,名为 Number Place,后在日本流行,1984 年将 Sudoku 命名为数独,即 “独立的数字” 的缩写,意思是 “在每一格只有一个数字”。
2004 年,曾任中国香港高等法院法官的高乐德 (Wayne Gould) 把这款游戏带到英国,成为英国流行的数学智力拼图游戏。

玩家需要根据 9×9 盘面上的已知数字,推理出所有剩余位置的数字,并满足每一行、每一列、每一个粗线九宫格内的数字包含有 1-9 的数字,且不重复。
现在给你一个数独,请你解答出来。每个数独保证有且只有一个解。

输入描述:
输入仅一组数据,共 9 行 9 列,表示初始数独(其中 0 表示数独中的空位)。
输出描述:
输出共 9 行 9 列,表示数独的解。

注意⾏末没有空格。
示例1
输入
5 3 0 0 7 0 0 0 0
6 0 0 1 9 5 0 0 0
0 9 8 0 0 0 0 6 0
8 0 0 0 6 0 0 0 3
4 0 0 8 0 3 0 0 1
7 0 0 0 2 0 0 0 6
0 6 0 0 0 0 2 8 0
0 0 0 4 1 9 0 0 5
0 0 0 0 8 0 0 7 9

输出
5 3 4 6 7 8 9 1 2
6 7 2 1 9 5 3 4 8
1 9 8 3 4 2 5 6 7
8 5 9 7 6 1 4 2 3
4 2 6 8 5 3 7 9 1
7 1 3 9 2 4 8 5 6
9 6 1 5 3 7 2 8 4
2 8 7 4 1 9 6 3 5
3 4 5 2 8 6 1 7 9

每次比赛都做不出搜索题,真的要好好补补了qwq,要求每行每列和每个小正方形里都要出现一次1~9

#include<cmath>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define memset(a,b) memset(a,sizeof(a),b)
using namespace std;
int mapp[10][10];
int flag=0;
int check(int x,int y,int n)
{for(int i=0; i<9; i++)if(mapp[x][i]==n)      //该行不能出现这个数return 0;for(int j=0; j<9; j++)if(mapp[j][y]==n)      //该列不能出现这个数return 0;int xx=x/3*3;int yy=y/3*3;for(int i=xx; i<=xx+2; i++)        //这个数所在的九宫格里只能出现一次这个数{for(int j=yy; j<=yy+2; j++)if(mapp[i][j]==n)return 0;}return 1;
}
void DFS(int x,int y)
{if(flag)return ;if( x== 9 && y== 0)     //搜索到8行8列的下一个了{for(int i=0; i<9; i++){for(int j=0; j<9; j++)cout<<mapp[i][j]<<" ";cout<<endl;}flag=1;return ;}if(y >= 9)DFS(x+1,0);      //搜索到这一行的最后一个,开始搜索下一行第一列else{if(mapp[x][y])              //这个位置不是0DFS(x,y+1);if(!mapp[x][y])           {for(int k=1; k<=9; k++){if(check(x,y,k)){mapp[x][y]=k;     //保存这个数值DFS(x,y+1);       //继续搜索下一列mapp[x][y]=0;     //这个数恢复为0,回溯}}}}
}
int main()
{for(int i=0; i<9; i++)for(int j=0; j<9; j++){scanf("%d",&mapp[i][j]);}DFS(0,0);return 0;
}

数独挑战(牛客网 2019年华南理工大学程序设计竞赛(春季赛))相关推荐

  1. 2019年华南理工大学程序设计竞赛(春季赛)

    Problem C 六学家的困惑 https://ac.nowcoder.com/acm/contest/625/C 题解:区间DP 1.对给定的两个字符串按规则以后最大排列(区间DP) 2.反转字符 ...

  2. 2019年华南理工大学程序设计竞赛

    目录 C 六学家的困惑(模拟+思维) E 数独挑战(dfs) H Parco_Love_GCD(思维) I 炒股(思维) L 石头剪刀布(水题) C 六学家的困惑(模拟+思维) [题意] 有两个字符串 ...

  3. “景驰科技杯”2018年华南理工大学程序设计竞赛 C Youhane's Undergraduate Thesis (大模拟)

    链接:https://www.nowcoder.com/acm/contest/94/C 大家都知道想从华南理工大学的本科毕业并不是一件简单的事情,作为一名大四即将毕业的学生,优酱正在为她的毕业论文愁 ...

  4. 牛客网--2019校招--丰收

    题目描述 又到了丰收的季节,恰逢小易去牛牛的果园里游玩. 牛牛常说他对整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛. 在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第 ...

  5. 牛客网--2019校招--瞌睡

    题目描述 小易觉得高数课太无聊了,决定睡觉.不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下.你知道了小易对一堂课每分钟知识点的感兴趣程度,并以分数量化,以及他在这堂课上 ...

  6. 牛客网 - [2019黑龙江大学程序设计竞赛]Center Street(筛法)

    题目链接:https://ac.nowcoder.com/acm/contest/877/I 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 6 ...

  7. 【网易】牛客网2019校招真题(编程题)

    [网易]被3整除 [题解]打表找规律,n为3的倍数和3的倍数余2的都是可以的,3的倍数余1的数是不可以的. 1 #include<bits/stdc++.h> 2 using namesp ...

  8. #牛客网 “华为杯”中国矿业大学程序设计学科竞赛重现赛

    A-细胞分裂 题目描述 CB不光是ACM大佬,同时也是生物领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. CB博士手里现在有N种细胞,编号从1~N,一个第i种细胞经过1秒钟可以分 ...

  9. 牛客网 2018年长沙理工大学第十三届程序设计竞赛 K zzq的离散数学教室2[网络流]

    题意:给一个有向无环图,求最大的点集,x不能到y,且y不能到x. 题解:首先可以知道的是这个是偏序集最大独立集,通过Dilworth定理可以知道是要求最小链划分(最小可交路径覆盖),我们通过网络流优化 ...

最新文章

  1. 数十名工程师作战5天,阿里达摩院连夜研发智能疫情机器人
  2. Cruise Control
  3. Android之Android触摸事件传递机制
  4. 数据挖掘——我们能从股市数据得出什么,以及一些算法
  5. EOJ_1049_三元组稀疏矩阵相加
  6. 全部关于测试–第2部分
  7. 问题 L: 超超的中等意思
  8. html嵌入audio格式不支持,html5中audio支持音频格式的解决方法
  9. mybatis plus关联查询_Mybatis 和 Hibernate 持久层框架之间的区别是啥?
  10. 移远ec20型号区别_移远EC20CEFDKG PCIE 全网通4G模块 增加B5频段 性价更高
  11. keil4如何设置自动缩进_在Keil中 自动格式化 代码
  12. OpenDRIVE工具介绍及地址
  13. python筛选同义词_Python-比较同义词NLTK
  14. 大时代势不可挡_会使您势不可挡的程序员的行为
  15. vijos-伊甸园日历游戏
  16. 如何选择合适的字体:宋体篇
  17. 修改linux开机启动界面,修改树莓派的开机启动画面,
  18. Ipad平板作为MAC苹果电脑的扩展屏幕的技术研究
  19. 从QQ音乐开发,探讨如何利用腾讯云SDK在直播中加入视频动画
  20. Android广告SDK聚合开发

热门文章

  1. 5种PHP创建数组的方式
  2. 第10章 项目质量管理
  3. java快速数据度数抵导入_java – 使用扫描仪从.txt文件读取度数符号
  4. python爬虫项目实战教学视频_('[Python爬虫]---Python爬虫进阶项目实战视频',)
  5. Nginx一:centos7安装Nginx、OpenResty
  6. html如何更改图例字体,图例(legend)
  7. thinkPHP5引入endroid/qr-code类库生成指定二维码(本例生成指定网址)
  8. [Node]node.js实现登录注册
  9. Qt实战项目学习2———学生管理系统(1)
  10. app vs html5