题目链接:https://www.luogu.org/problemnew/show/P1784

因为要求行列以及每9个数字组成的中格子都得有1-9这9个数,我们不妨建三个二维数组

第一维代表是第几个行/列/中格子,第二维是具体数字,然后数组为1就代表第二维的数字已经有了,为0就是没有

dfs按照从左到右,从上到下的顺序来遍历

另外,存中格子的的时候1-9也是按照这个顺序来的,用(i-1)/3*3+(j-1)/3+1来表示这是第几个中格子

#include <bits/stdc++.h>
using namespace std;
const double pi=acos(-1);
const int mod=1e9+7;
const int maxn=1e5+7;
typedef long long ll;
int a[10][10];
bool h[10][10],l[10][10],g[10][10];//三个数组分别代表行列和组,第一维是行列组的下标,第二维是1-9的莫个数,为0说明还不存在,1存在
void print(){for(int i=1;i<10;i++){for(int j=1;j<9;j++)printf("%d ",a[i][j]);printf("%d\n",a[i][9]);}exit(0);
}
void dfs(int x,int y){if(a[x][y]){if(x==9&&y==9)print();if(y==9) dfs(x+1,1);//从左到右,从上到下,依次遍历 else dfs(x,y+1);}else{for(int i=1;i<=9;i++){if(!h[x][i]&&!l[y][i]&&!g[(x-1)/3*3+(y-1)/3+1][i]){h[x][i]=1;l[y][i]=1;g[(x-1)/3*3+(y-1)/3+1][i]=1;a[x][y]=i;if(x==9&&y==9)print();if(y==9) dfs(x+1,1);else dfs(x,y+1);h[x][i]=0;l[y][i]=0;g[(x-1)/3*3+(y-1)/3+1][i]=0;a[x][y]=0;}}}
}
int main(){for(int i=1;i<=9;i++){for(int j=1;j<=9;j++){scanf("%d",&a[i][j]);if(a[i][j]>0){h[i][a[i][j]]=1;l[j][a[i][j]]=1;g[(i-1)/3*3+(j-1)/3+1][a[i][j]]=1;}    //cout<<233<<endl;
        }}dfs(1,1); return 0;
}

转载于:https://www.cnblogs.com/qingjiuling/p/10530080.html

填写数独 洛谷P1784相关推荐

  1. 洛谷 P1784 数独 ——抽象深搜;

    # 数独 ## 题目描述 数独是根据 $9 \times 9$ 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含 $1 - 9$ ,不重复.每一道合格的数独谜 ...

  2. 洛谷 P1784 数独 dfs

    题目描述 数独是根据 9×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含 1 - 9 ,不重复.每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为 ...

  3. 洛谷P1784数独 题解

    题目传送门 数独 题目描述 数独是根据 9×99 \times 99×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含 1−91 - 91−9 ,不重复. ...

  4. 洛谷 P1784 ——数独

    题目描述 数独是根据 9×99×99×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含 1−91 - 91−9,不重复. 每一道合格的数独谜题都有且仅有唯 ...

  5. 洛谷题目---P1784 数独

    题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复.每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无 ...

  6. [洛谷P1074] 靶形数独

    洛谷题目链接:靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博 ...

  7. 洛谷P1074 靶形数独 [搜索]

    题目传送门 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了 ...

  8. 信息学奥赛一本通 1967:【14NOIP普及组】螺旋矩阵 | 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵

    [题目链接] ybt 1967:[14NOIP普及组]螺旋矩阵 洛谷 P2239 [NOIP2014 普及组] 螺旋矩阵 类似考题: 洛谷 P1014 [NOIP1999 普及组] Cantor 表 ...

  9. 广度优先搜索——填涂颜色(洛谷 P1162)

    题目选自洛谷P1162 首先讲一下思路:根据题意,当找到第一个1时,其右下必然是圈内的0,那么只要从这个0开始广搜寻找联通块就可以了.(因为圈只有一个,那么当找到第一个1之后便要打断循环,很重要!) ...

最新文章

  1. Android混淆打包
  2. [转]一文解释PyTorch求导相关 (backward, autograd.grad)
  3. ols残差_涨知识丨OLS原理的矩阵方法很难?Just So So
  4. Nginx 模块开发高级篇
  5. 柳传志退休后拿近1亿薪酬?联想回应了:严重失实
  6. 设计一个高质量的 API 接口
  7. 元组的常用方法、应用场景
  8. Vista曝致命漏洞 10秒钟可让系统崩溃
  9. CentOS 6U7分区大于2TB的磁盘以及挂载大于16TB分区磁盘的解决方案
  10. QT应用编程: 基于FFMPEG设计的流媒体播放器(播放rtmp视频流)
  11. 众多mock工具,这一次我选对了
  12. 【浅谈爬虫】一名合格的Python爬虫工程师必须具备技能—具体了解四大Python爬虫分类以及爬虫基本原理实现
  13. 学习爬虫第二天 requests库
  14. nginx设置IP、文件目录、请求头白名单
  15. 联想拯救者2020R7000双系统装机记录_自用
  16. diskman 恢复分区表找到数据
  17. 50条狗中有多少条病狗?
  18. php修改根目录,phpStudy如何修改端口或WWW目录(网站根目录)
  19. centos搭建微信代理服务器 docker
  20. IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

热门文章

  1. 集成学习lgb库调参的粒子群方法
  2. ls命令 文件和目录属性
  3. 正则表达式入门教程-连载(2)-正则表达式引擎怎么工作的
  4. UEditor应用 —— 图片上传
  5. 如何解决Greenplum中无法通过标准命令修复的元数据错误
  6. JQuery EasyUI DataGrid
  7. linux之sed用法-转
  8. 1091. Acute Stroke (30)-PAT甲级真题(广度优先搜索)
  9. JAVA中运行看不见窗口_eclipse中已经把窗口设置为可视,为什么运行 时还是看不到窗口?...
  10. java写一个外网访问的接口_不是吧不是吧!随便写的一个API竟获得 2.5 亿的访问量...