数独

  1. #include "cstdio"
  2. #include "cstring"
  3. #include "cstdlib"
  4. #include "iostream"
  5. using namespace std;
  6. #include <cstdio>
  7. int num,v[][],map[][];///v存储需要填的位置
  8. bool finished;
  9. bool judge(int x,int y,int k)
  10. {
  11. int i,j,it,jt;
  12. for(i=; i<; i++)
  13. {
  14. if(map[i][y]==k) return false;///同行同列不能有同数字
  15. if(map[x][i]==k) return false;
  16. }
  17. it=(x/)*;
  18. jt=(y/)*;
  19. for(i=; i<; i++)///一块内数字不能相同
  20. for(j=; j<; j++)
  21. if(map[i+it][j+jt]==k)
  22. return false;
  23. return true;
  24. }
  25.  
  26. void dfs(int k)
  27. {
  28. if(finished) return;
  29. if(k>=num)
  30. {
  31. finished =true;
  32. for(int i=; i<; i++)
  33. {
  34. for(int j=; j<; j++)
  35. printf("%d",map[i][j]);
  36. printf("\n");
  37. }
  38. }
  39. for(int i=;i<=;i++)///1到9 9个数字
  40. {
  41. int x=v[k][];///填第k个空
  42. int y=v[k][];
  43. if(judge(x,y,i))///能填吗?
  44. {
  45. map[x][y]=i;
  46. dfs(k+);///下一个数
  47. map[x][y]=;
  48. }
  49. }
  50. }
  51.  
  52. int main()
  53. {
  54. int t;
  55. scanf("%d\n",&t);
  56. while(t--)
  57. {
  58. num=;
  59. finished =false;
  60. char c;
  61. for(int i=;i<;i++)
  62. {
  63. for(int j=;j<;j++)
  64. {
  65. scanf("%c",&c);
  66. map[i][j]=c-'';
  67. if(map[i][j]==)
  68. {
  69. v[num][]=i;
  70. v[num][]=j;
  71. num++;
  72. }
  73. }
  74. getchar();
  75. }
  76. dfs();
  77. }
  78. return ;
  79. }

POJ 2676 数独+dfs深搜的更多相关文章

  1. POJ 2676 数独(DFS)

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21612   Accepted: 10274   Specia ...

  2. POJ 2676 Sudoku(深搜)

    Sudoku Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submi ...

  3. 数独(深搜)(poj2726,poj3074)

    数独(深搜)数据最弱版本(poj 2676) Description Sudoku is a very simple task. A square table with 9 rows and 9 co ...

  4. CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】

    [编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色 ...

  5. DFS 深搜专题 入门典例 -- 凌宸1642

    DFS 深搜专题 入门典例 -- 凌宸1642 深度优先搜索 是一种 枚举所有完整路径以遍历所有情况的搜索方法 ,使用 递归 可以很好的实现 深度优先搜索. 1 最大价值 题目描述 ​ 有 n 件物品 ...

  6. ACM : POJ 2676 SudoKu DFS - 数独

    SudoKu Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu POJ 2676 Descr ...

  7. poj 2386:Lake Counting(简单DFS深搜)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18201   Accepted: 9192 De ...

  8. 【DFS深搜初步】HDOJ-2952 Counting Sheep、NYOJ-27 水池数目

    [题目链接:HDOJ-2952] Counting Sheep Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  9. DFS深搜——Red and Black——A Knight&#39;s Journey

    深搜,从一点向各处搜找到全部能走的地方. Problem Description There is a rectangular room, covered with square tiles. Eac ...

随机推荐

  1. SqlServer2008/2005数据库日志收缩

    1.SQL2008数据库USE [master]GOALTER DATABASE 数据库名称 SET RECOVERY SIMPLE WITH NO_WAITALTER DATABASE 数据库名称 ...

  2. 生产者消费者-Java代码实现

    import java.util.LinkedList; class Storage{ private static final int MAX = 100; LinkedList<Object ...

  3. 初见spark-02(RDD及其简单算子)

    今天,我们来进入spark学习的第二章,发现有很多事都已经开始变化,生活没有简单的朝自己想去的方向,但是还是需要努力呀,不说鸡汤之类的话了, 开始我们今天的spark的旅程 一.RDD是什么 rdd的 ...

  4. gcc常用命令

    1简介 2简单编译 2.1预处理 2.2编译为汇编代码(Compilation) 2.3汇编(Assembly) 2.4连接(Linking) 3多个程序文件的编译 4检错 5库文件连接 5.1编译成 ...

  5. 如何对比两个Jar包

    如果对比两个jar包呢?jar 都是class 文件,我对比jar,就是想知道,它增加了删除了哪些方法.增加了哪些类,删除了哪些类. 有很多方法,你可以,反编译,然后通过beyongCompair 去 ...

  6. Spring mvc+hibernate+freemarker(实战)

    Spring mvc+hibernate+freemarker(实战) 博客分类: Spring Spring mvchibernatefreemarkerwebjava  今天我为大家做了一个 sp ...

  7. atomic integer 实现

    public final int getAndAddInt(Object o, long offset, int delta) { int v; do { v = getIntVolatile(o, ...

  8. Python SimpleHTTPServer简单HTTP服务器

    搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某个目录给整个项目 ...

  9. Python网络编程(weekly summary1)

    网络的目的是什么?     用于信息传输.接受  能把各个点.面.体的信息链接到一起 实现资源的共享 OSI模型:     应用层:提供程序服务     表示层:数据加密.优化.压缩     会话层: ...

  10. (原)Unreal渲染模块 源码和实例分析说明

    @author:白袍小道 说明 1.由于小道就三境武夫而已,而UE渲染部分不仅管理挺大,而且牵扯技术和内容驳杂,所以才有这篇梳理. 2.尽量会按书籍和资料,源码,小模块的调试和搬山(就是敲键盘)..等 ...