题目描述

数独是根据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

说明

你猜,你猜,你猜猜猜

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

dfs

屠龙宝刀点击就送

  1. #include <cstdlib>
  2. #include <cstdio>
  3. char str[];
  4. int ans,num,G[][];
  5. bool flag,h[][],l[][],g[][];
  6. inline int max(int a,int b) {return a>b?a:b;}
  7. int bel(int x,int y)
  8. {
  9. if(x<=&&y<=) return ;
  10. if(x<=&&y<=) return ;
  11. if(x<=&&y<=) return ;
  12. if(x<=&&y<=) return ;
  13. if(x<=&&y<=) return ;
  14. if(x<=&&y<=) return ;
  15. if(y<=) return ;
  16. if(y<=) return ;
  17. if(y<=) return ;
  18. }
  19. struct node
  20. {
  21. int x,y;
  22. }kb[];
  23. void output()
  24. {
  25. for(int i=;i<=;++i)
  26. for(int j=;j<=;++j)
  27. j==?printf("%d\n",G[i][j]):printf("%d ",G[i][j]);
  28. }
  29. void dfs(int NUM,int a,int b)
  30. {
  31. if(NUM==num+) {output();exit();}
  32. for(int i=;i<=;++i)
  33. {
  34. if(h[a][i]||l[b][i]||g[bel(a,b)][i]) continue;
  35. h[a][i]=;
  36. l[b][i]=;
  37. g[bel(a,b)][i]=;
  38. G[a][b]=i;
  39. dfs(NUM+,kb[NUM+].x,kb[NUM+].y);
  40. h[a][i]=;
  41. l[b][i]=;
  42. g[bel(a,b)][i]=;
  43. }
  44. }
  45. int main()
  46. {
  47. for(int i=;i<=;++i)
  48. for(int j=;j<=;++j)
  49. {
  50. scanf("%d",&G[i][j]);
  51. if(!G[i][j])
  52. {
  53. kb[++num].x=i;
  54. kb[num].y=j;
  55. }
  56. else
  57. {
  58. h[i][G[i][j]]=;
  59. l[j][G[i][j]]=;
  60. g[bel(i,j)][G[i][j]]=;
  61. }
  62. }
  63. dfs(,kb[].x,kb[].y);
  64. return ;
  65. }

洛谷 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 数独

    https://www.luogu.org/problem/show?pid=1784 题目描述 数独是根据9×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. B - Simple Game

    B - Simple Game Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Su ...

  2. 86标准SQL与92标准SQL用法区别

    86标准SQL与92标准SQL用法区别 在开发Oracle 9i时, 数据库还时间了ANSL SQL/92标准的链接语法, 在书中建议在使用Oracle 9i及更高版本时,应该使用SQL/92标准的语 ...

  3. javascript数组对象

    constructor属性 返回数组对象原型 var arr = [1,2,3,4,5]; arr.constructor //输出 function Array() { [native code] ...

  4. Zookeeper发布订阅之SpringBoot+Mybatis多数据源

    1.前言 数据发布/订阅系统,即所谓的配置中心,顾名思义就是发布者将数据发布到Zookeeper的一个或一系列节点上,供订阅者进行数据订阅,进而达到动态获取数据的目的,实现配置信息的集中管理和数据的动 ...

  5. Codeforces Round #360 (Div. 1)A (二分图&dfs染色)

    题目链接:http://codeforces.com/problemset/problem/687/A 题意:给出一个n个点m条边的图,分别将每条边连接的两个点放到两个集合中,输出两个集合中的点,若不 ...

  6. [转]PBFT 算法详解

    https://www.cnblogs.com/mafeng/p/8405375.html

  7. Fiddler设置断点修改Request和Response【转】

    Fiddler设置断点修改Request和Response 设置断点的两种方式:工具栏和命令 1.工具栏:Rules -> Automatic Breakpoints(automatic [ɔː ...

  8. 为HTML5添加新样式标签

    为 HTML 添加新元素 该实例向 HTML 添加的新的元素,并为该元素定义样式,元素名为 <myHero> : 实例 <!DOCTYPE html> <html> ...

  9. 有关xerosploit运行报错问题的有效解决方案

    [安装xerosploit]安装xerosploit的步骤如下,我是将xerosploit直接克隆到了根目录下(使用“cd /”到达根目录) git clone https://github.com/ ...

  10. datastream解析

    在EOS的eosiolib模块中有一个datasteam.hpp文件,它几乎实现了所有类型对字节流的转换,是一个非常强大的工具类,在这里对它的做一个简单的提取,也加强一下自己对它的理解.在下面的工程中 ...