https://www.luogu.org/problem/show?pid=1784

题目描述

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

芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。

这位数学家说,他相信只有“智慧最顶尖”的人才有可能破解这个“数独之谜”。

据介绍,目前数独游戏的难度的等级有一道五级,一是入门等级,五则比较难。不过这位数学家说,他所设计的数独游戏难度等级是十一,可以说是所以数独游戏中,难度最高的等级他还表示,他目前还没遇到解不出来的数独游戏,因此他认为“最具挑战性”的数独游戏并没有出现。

输入输出格式

输入格式:

一个未填的数独

输出格式:

填好的数独

输入输出样例

输入样例#1:

  1. 8 0 0 0 0 0 0 0 0
  2. 0 0 3 6 0 0 0 0 0
  3. 0 7 0 0 9 0 2 0 0
  4. 0 5 0 0 0 7 0 0 0
  5. 0 0 0 0 4 5 7 0 0
  6. 0 0 0 1 0 0 0 3 0
  7. 0 0 1 0 0 0 0 6 8
  8. 0 0 8 5 0 0 0 1 0
  9. 0 9 0 0 0 0 4 0 0
输出样例#1:

  1. 8 1 2 7 5 3 6 4 9
  2. 9 4 3 6 8 2 1 7 5
  3. 6 7 5 4 9 1 2 8 3
  4. 1 5 4 2 3 7 8 9 6
  5. 3 6 9 8 4 5 7 2 1
  6. 2 8 7 1 6 9 5 3 4
  7. 5 2 1 9 7 4 3 6 8
  8. 4 3 8 5 2 6 9 1 7
  9. 7 9 6 3 1 8 4 5 2

说明

你猜,你猜,你猜猜猜

猜不出来吧,我不告诉你~~~

从最靠右下(改变顺序有时变快)没填数的点开始搜,

  1. #include <algorithm>
  2. #include <cstdio>
  3.  
  4. const int pos[][]={{,,,,,,,,},
  5. {,,,,,,,,},
  6. {,,,,,,,,},
  7. {,,,,,,,,},
  8. {,,,,,,,,},
  9. {,,,,,,,,},
  10. {,,,,,,,,},
  11. {,,,,,,,,},
  12. {,,,,,,,,}};
  13. bool h[][],l[][],g[][];
  14. int vx[],vy[],cnt,deep,map[][];
  15.  
  16. void DFS(int num)
  17. {
  18. if(!num)
  19. {
  20. for(int i=; i<; ++i)
  21. {
  22. for(int j=; j<; ++j)
  23. printf("%d ",map[i][j]);
  24. puts("");
  25. }
  26. std::exit();
  27. }
  28. if(++deep>1e7) return ;
  29. int tox=vx[num],toy=vy[num],topos=pos[tox][toy],tmp;
  30. for(int i=; i<=; ++i)
  31. {
  32. if(!h[tox][i]&&!l[toy][i]&&!g[topos][i])
  33. {
  34. h[tox][i]=;
  35. l[toy][i]=;
  36. g[topos][i]=;
  37. map[tox][toy]=i;
  38. DFS(num-);
  39. h[tox][i]=;
  40. l[toy][i]=;
  41. g[topos][i]=;
  42. map[tox][toy]=;
  43. }
  44. }
  45. }
  46.  
  47. int AC()
  48. {
  49. for(int i=; i<; ++i)
  50. for(int j=; j<; ++j)
  51. {
  52. scanf("%d",&map[i][j]);
  53. if(!map[i][j])
  54. {
  55. vx[++cnt]=i;
  56. vy[cnt]=j;
  57. }
  58. else
  59. {
  60. h[i][map[i][j]]=;
  61. l[j][map[i][j]]=;
  62. g[pos[i][j]][map[i][j]]=;
  63. }
  64. }
  65. DFS(cnt);
  66. return ;
  67. }
  68.  
  69. int Aptal=AC();
  70. int main(){;}

洛谷—— P1784 数独的更多相关文章

  1. 洛谷P1784 数独

    To 洛谷.1784 数独(类似(或者说相同)题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数 ...

  2. 洛谷 P1784 数独[DFS/回溯]

    To 洛谷.1784 数独类似题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行 ...

  3. 洛谷 P1784 数独

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

  4. 填写数独 洛谷P1784

    题目链接:https://www.luogu.org/problemnew/show/P1784 因为要求行列以及每9个数字组成的中格子都得有1-9这9个数,我们不妨建三个二维数组 第一维代表是第几个 ...

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

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

  6. [洛谷P1074] 靶形数独

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

  7. 【题解】洛谷P1074 [NOIP2009TG] 靶形数独(DFS+剪枝)

    洛谷P1074:https://www.luogu.org/problemnew/show/P1074 思路 这道题一看就是DFS 打一个分数表方便后面算分 我用x y z数组分别表示行 列 宫 是否 ...

  8. 【noip】跟着洛谷刷noip题

    传送门 1.铺地毯 d1t1 模拟 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> # ...

  9. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

随机推荐

  1. EJB是什么鸟东西?

    到底EJB是什么 到底EJB是什么?被口口相传的神神秘秘的,百度一番,总觉得没有讲清楚的,仍觉得一头雾水.百度了很久,也从网络的文章的只言片语中,渐渐有了头绪. 用通俗话说,EJB就是:"把 ...

  2. hihocoder 1680 hiho字符串2 dp求方案数+递归

    我们定义第一代hiho字符串是"hiho". 第N代hiho字符串是由第N-1代hiho字符串变化得到,规则是: h -> hio i -> hi o -> ho ...

  3. leetcode矩阵与动态规划相关

    目录 54/59螺旋矩阵 62不同路径 64最小路径和 120三角形最小路径和 695岛屿的最大面积 547朋友圈 718最长重复数组 221最大正方形 121/122/123/714/188买卖股票 ...

  4. Help Me with the Game(模拟)

    http://poj.org/problem?id=2996 #include<stdio.h> #include<string.h> ][]; void find1(char ...

  5. Java 基本的递归写法

    1.首先我们得有一个树状结构的表,类似这种结构.必须得有 id,pid  其他的根据需要来. 我们叫它treeTbl表吧.这里pid为0的表示是顶级节点. 2.接着select * from tree ...

  6. python--2、数据类型

    字符串 name='jinyudong' 按索引取值.正向取 与 反向取 name['3'] 'y' name['-3'] 'o' 切片(若要使用倒序指定步长为-1),开始或者结束不指定即为到最边上的 ...

  7. 偶尔遇到的“The request was aborted:Could not create SSL/TLS secure channel.”怎么解决?

    项目中涉及到调用第三方的Https的WebService,我使用的是原始的HttpWebRequest. 代码中已经考虑到是Https,加上了SSL3协议,加上了委托调用.但偶尔还是会碰到 The r ...

  8. [ller必读] LoveLive! 必备技能之 Python Pillow 自动处理截图

    起因 喜欢的歌,静静地听:喜欢的人,远远的看.30天前,就是3月14号,我情不自禁地走近了<LoveLive!学院偶像祭>,这是我的第一张卡片(见下图).第二天也就是3月15日,海未生日了 ...

  9. SQL Server存储过程作业(三)

    阶段4:练习——插入入住客人记录 需求说明 使用存储过程将入住客人信息插入客人信息表中,要求: 检查身份证号必须是18个字符组成 押金的默认值为1000元 如果客人记录插入成功,输出客人流水号:否则输 ...

  10. 【技术累积】【点】【Java】【12】几种常见编码(持续更新)

    问题描述 有这么一段代码: String question = new String(record.getQuestion().getBytes("iso-8859-1"), &q ...