代码:

  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <algorithm>
  6. #include <iomanip>
  7. using namespace std;
  8. int n;
  9. int f[][];///记录每个位置的值 -1表示需要填
  10. int check(int x,int y,int k) {
  11. for(int i = ;i < ;i ++) {
  12. if(i != x && f[i][y] == k)return ;
  13. if(i != y && f[x][i] == k)return ;
  14. }
  15. int xx,yy;
  16. for(int i = ;i < ;i ++) {
  17. xx = x / * + i;
  18. for(int j = ;j < ;j ++) {
  19. yy = y / * + j;
  20. if(!(xx == x && yy == y) && f[xx][yy] == k)return ;
  21. }
  22. }
  23. return ;
  24. }
  25. void dfs(int x,int y) {//x代表行,y代表列,分别从0-8共9行(列)
  26. if(x == ) {///x范围已过已经把表格填了一遍了 输出结果并返回
  27. for(int i = ;i < ;i ++) {
  28. for(int j = ;j < ;j ++) {
  29. cout<<f[i][j]<<' ';
  30. }
  31. cout<<endl;
  32. }
  33. system("pause");
  34. return;
  35. }
  36. int xx = x,yy = y;
  37. f[x][y] = ;///如果保持-1 下面循环不会进行 循环后会恢复为-1
  38. while(f[xx][yy] != -) {
  39. if(xx >= )break;
  40. xx = xx + (yy + ) / ,yy = (yy + ) % ;///每循环一次yy+1,也就是从当前(x,y)的位置往右一行一行的遍历 找到下一个需要填的位置
  41. }
  42. f[x][y] = -;
  43. for(int i = ;i <= ;i ++) {
  44. if(check(x,y,i)) {//当前填i可行的话 就dfs下一个需要填的位置(xx,yy)
  45. f[x][y] = i;
  46. dfs(xx,yy);
  47. f[x][y] = -;//dfs终止表示这种策略不能dfs下去 位置值恢复为-1
  48. }
  49. }
  50. }
  51. int main() {
  52. memset(f,-,sizeof(f));
  53. f[][] = ;
  54. f[][] = ;
  55. f[][] = ;
  56. f[][] = ;
  57. f[][] = ;
  58. f[][] = ;
  59. f[][] = ;
  60. f[][] = ;
  61. f[][] = ;
  62. f[][] = ;
  63. f[][] = ;
  64. f[][] = ;
  65. f[][] = ;
  66. f[][] = ;
  67. f[][] = ;
  68. f[][] = ;
  69. f[][] = ;
  70. f[][] = ;
  71. f[][] = ;
  72. f[][] = ;
  73. f[][] = ;
  74. f[][] = ;
  75. f[][] = ;
  76. f[][] = ;
  77. for(int i = ;i < ;i ++) {
  78. for(int j = ;j < ;j ++) {
  79. if(f[i][j] == -)cout<<'*'<<' ';
  80. else cout<<f[i][j]<<' ';
  81. }
  82. cout<<endl;
  83. }
  84. getchar();
  85. dfs(,);
  86. }

计蒜客 蓝桥模拟 F. 结果填空:数独的更多相关文章

  1. 计蒜客 蓝桥模拟 A. 结果填空:矩阵求和

    给你一个从 n×nn \times nn×n 的矩阵,里面填充 111 到 n×nn \times nn×n .例如当 nnn 等于 333 的时候,填充的矩阵如下.   1 1 2 3 2 4 5 ...

  2. 计蒜客 蓝桥模拟 B.素数个数

    用 0,1,2,3⋯70,1,2,3 \cdots 70,1,2,3⋯7 这 888 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次). 提示:以 000 开始的数字是非法数字. 代 ...

  3. 计蒜客 蓝桥模拟 I. 天上的星星

    计算二维前缀和,节省时间.容斥定理. 代码: #include <cstdio> #include <cstdlib> #include <cstring> #in ...

  4. 计蒜客 蓝桥模拟 H. 封印之门

    Floyd算法,最短路,判断a,b是否相等. 代码: #include <cstdio> #include <cstdlib> #include <cstring> ...

  5. 计蒜客 蓝桥模拟 G. 数列求值

    递归式移项得Ai+1 = 2Ai + 2Ci - Ai-1; 1.A2 = 2A1 + 2C1 - A0; 2.A3 = 2A2 + 2C2 - A1; . . . n.An+1 = 2An + 2C ...

  6. 计蒜客蓝桥杯模拟赛 后缀字符串:STL_map+贪心

    问题描述 一天蒜头君得到 n 个字符串 si​,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si​ 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来  ...

  7. 计蒜客蓝桥杯模拟赛五J. 程序设计:放置守卫

    在一张 n 行 m 列的方格地图上放置一些守卫,每个守卫能守护上.左.右三个方向上相邻的方格和自己所在的方格.如下图,红色的方格放置守卫,绿色的方格为该守卫守护的区域. 现在要求在地图上放置若干个守卫 ...

  8. 计蒜客 蓝桥杯模拟 瞬间移动 dp

      在一个 n \times mn×m 中的方格中,每个格子上都有一个分数,现在蒜头君从 (1,1)(1,1) 的格子开始往 (n, m)(n,m) 的格子走.要求从 (x_1,y_1)(x1​,y1 ...

  9. 计蒜客 NOIP模拟赛(3) D1T1火山喷发

    火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 nnn 个生物分别具有 A1,A2,⋯,An​​点生命值,一次火山喷发总计 M轮,每轮造成 1点伤害,等 ...

随机推荐

  1. @清晰掉 swap函数

    swap函数估计是一个各种各样程序都会频繁用到的子程序,可是你知道它究竟有多少种不同的写法吗?下面我就列举我知道的几种swap函数来跟大家分享一下. (1)经典型---嫁衣法 无论是写程序还是干其他事 ...

  2. 微信小程序 API 路由

    路由:由于页面的跳转: wx.switchTab() 跳转到 tabBar 页面,并关闭掉其他所有非 tabBar 页面: 参数:为对象, 对象的属性: url:需要跳转的 tabBar 的页面路径( ...

  3. Python 使用PyQt5进行开发(一)

    Qt  是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器. 我们先简单使用Qt进行一个小工 ...

  4. springboot 使用外置tomcat启动

    pom.xml  如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  5. 阶段3 1.Mybatis_12.Mybatis注解开发_6 mybatis注解开发一对一的查询配置

    新建Account实体类 生成getter和setter还有toString方法 先创建dao类 全局的配置,这里要改成package 创建多对一的关系 在查询的时候输出user这个对象的内容 建立查 ...

  6. Win8.1+VS2013+WDK8.1+VirtualBox or VMware 驱动开发环境配置

    https://blog.csdn.net/charlessimonyi/article/details/50904956 Win8.1+VS2013+WDK8.1+VirtualBox or VMw ...

  7. 中国MOOC_零基础学Java语言_第5周 数组_1多项式加法

    第5周编程题 查看帮助 返回   第5周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截 ...

  8. Delphi IDE使用的一些主要技巧

    Delphi IDE使用的一些主要技巧 1.查找和替换 (1)<ctrl>+F[1]:选择页“Find”,进行查找,则根据查找方向继续查找.选择页“Findin Files”,则进行该工程 ...

  9. Debian或者Ubuntu中安装secureCRT/secureFX

    1.官网下载 ubuntu 下的 xx.deb安装包.此处使用的安装包是scrt-sfx-8.5.4-1942.ubuntu16-64.x86_64.deb,点击下载,提取码:5em3. 2.安装 d ...

  10. 理解ES6中的Iterator

    一.为什么使用Iterator 我们知道,在ES6中新增了很多的特性,包括Map,Set等新的数据结构,算上数组和对象已经有四种数据集合了,就像数组可以使用forEach,对象可以使用for...in ...