代码:(控制台打印不了92种情况,只打印前10种)

 1 #include<iostream>
 2 #include<string>
 3 #include<windows.h>
 4 #define ok  1
 5 #define error   0
 6 using namespace std;
 7
 8
 9 int a[9][9]={0};
10 int num=0;
11
12 int Ifblock(int x,int y)    //判断有没有产生冲突
13 {
14     int i,j,k;
15     j=y;
16     k=y;
17     for(i=x-1;i>0;i--)
18     {
19         if(a[i][y]==1)
20             return error;
21         if((--j)>0&&a[i][j]==1)
22             return error;
23         if((++k)<9&&a[i][k]==1)
24             return error;
25     }
26     return ok;
27 }
28
29 int DFS(int step)    //深度优先搜索核心代码
30 {
31     int i,j,k;
32     if(step==9)
33     {
34         num++;
35         if(num<=10)
36         {
37             for(j=1;j<9;j++)
38             {
39                 for(k=1;k<9;k++)
40                 {
41                     printf("%2d",a[j][k]);
42                 }
43                 cout<<'\n';
44             }
45             cout<<'\n'<<endl;
46         }
47         return ok;
48     }
49     for(i=1;i<9;i++)
50     {
51         if(Ifblock(step,i))
52         {
53             a[step][i]=1;
54             //step++
55             DFS(step+1);
56             a[step][i]=0;
57         }
58     }
59     return ok;
60 }
61
62 int main()
63 {
64     int step=1;
65     DFS(step);
66     cout<<"一共"<<num<<"种可能"<<endl;
67     return 0;
68 }

转载于:https://www.cnblogs.com/fangyan5218/p/4728318.html

深度优先搜索——八皇后问题相关推荐

  1. 深度优先搜索——八皇后问题(洛谷 P1219)

    题目选自洛谷P1219     该题针对6-13皇后都行,只需改动输入的数字. 八皇后问题是经典的DFS问题,唯一需要注意的就是判断能够放置的条件,即满足什么状况是对的. 题目要求不能在同一行,同一列 ...

  2. python深度优先算法 八皇后_八皇后问题——DFS(深度优先搜索)

    八皇后问题,是在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法? 算法思路: 八皇后问题实质为一种深度优先(DFS)搜索问题. ...

  3. 用全排列的方法解决八皇后问题

    用百度搜索八皇后问题,几乎清一色都是用回溯,有兴趣的同学可参考:从全排列和八皇后问题谈回溯. 解决一个问题,我们应该充分利用已有的条件,化繁为简. $a=[0,1,2,3,4,5,6,7]; 可以看到 ...

  4. python8皇后不攻击问题_python 八皇后问题的解法(深度搜索)

    共本文介绍如何用深度搜索的方式求解8皇后(其实也可以求解N皇后)问题的解 八皇后问题描述 在国际想起的规则中,皇后能攻击八个方向上的棋子,而且不受距离限制. 皇后的攻击方向如下图所示: 八皇后问题则是 ...

  5. 【深度优先搜索】20行代码解决8皇后问题

    八皇后算法描述如下: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法! 用dfs解决: 搜索策略如下: 从第0行开始,我们依次 ...

  6. 深度优先搜索解决八数码问题

    //程序描述:基于盲目搜索策略的宽度优先搜索方法#include <iostream> #include <string> #include <cstring> # ...

  7. 【C++】【学习笔记】【递归与回溯问题详解与例题】排列问题;组合问题;二维平面回溯;flood fill问题;搜索问题(八皇后);

    目录 七.递归和回溯 1.回溯 2.回溯应用 - 排列问题 2.回溯应用 - 组合问题 3.回溯应用 - 二维平面 4.回溯应用 - floodfill算法 问题 4.回溯应用 - 搜索问题 - 八皇 ...

  8. python DFS深度优先搜索及N皇后问题求解

    DFS可谓是算法里的一个大头,不懂DFS都不敢承认自己学过数据结构.今天菜鸡我要逆袭了,先从经典的N皇后问题搞起,试试DFS水深几尺[略加思索] 内容篇幅有点长,不想看我对DFS嗷嗷叫的朋友还是直接去 ...

  9. 八皇后 深度优先 广度优先 位运算

    对于八皇后问题,大家应该都不陌生,只要接触过算法的,必然都会接触到这到题.对于八皇后的问题不在此叙述,可以直接百度.对于八皇后问题的解决思路,可以直接根据题目的要求便可以得到. 总的来说,就是下一个皇 ...

最新文章

  1. 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器
  2. ASP.NET保持用户状态的九种选择
  3. 与其焦虑成疾,不如静心学习
  4. Archlinux里面安装VMware Tools
  5. mac下使用git的冲突的解决方案
  6. LeetCode_349. 两个数组的交集
  7. oracle进城有哪些,oracle主要进程详解
  8. React学习:生命周期、过滤器、event、axios-学习笔记
  9. 系统设计题:如何设计一个电商平台积分兑换系统!
  10. 蓝桥杯 算法训练 最大最小公倍数
  11. 手机端放在线条中间的标题
  12. 103.及时清除缓存
  13. 使用 Productivity Power Tools 高级扩展 来帮助你提高 VS2012 的工作效率
  14. python微信图标制作_Python十分钟制作属于你自己的个性logo
  15. [ERROR CRI]: unable to check if the container runtime at “/var/run/dockershim.sock“
  16. 深度学习笔记(三):激活函数和损失函数
  17. python利用字典破解WIFI密码
  18. ABB机器人紧凑型控制柜内部结构(图)
  19. iPhone6和iPhone6Plus的适配
  20. java severlet 获取当前路径_Java 获取当前路径的方法总结

热门文章

  1. java.util.ComparableTimSort中的sort()方法简单分析
  2. Linux中常见目录的作用
  3. 全国计算机等级考试题库二级C操作题100套(第35套)
  4. linux添加window启动
  5. c++ linux 线程等待与唤醒_C++并发编程 等待与唤醒
  6. 操作系统的运行机制和体系结构
  7. 手机技巧:手机电量为啥到20%就会提醒充电,看完你就懂了!
  8. 电脑技巧:键盘上最长的按键空格键使用技巧!
  9. 柱坐标系下的ns方程_麦克斯韦方程组小结
  10. Java正则表达式较验手机号、邮箱