深度优先搜索——八皇后问题

代码:(控制台打印不了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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3 爬虫第三步 本文包你学会正则 不会就来锤我

简介 正则表达式是一种描述字符的一种方式&#xff0c;通过该方式&#xff0c;匹配字符串。 正则表达式是自由的&#xff0c;一个字符的含义往往代表着一类字符&#xff0c;通过多个正则正则符号的组合描述&#xff0c;可以使组成的正则表达式能够描述一类字符串。 在开发中&a…

.NET性能优化-使用结构体替代类

前言我们知道在C#和Java明显的一个区别就是C#可以自定义值类型&#xff0c;也就是今天的主角struct&#xff0c;我们有了更加方便的class为什么微软还加入了struct呢&#xff1f;这其实就是今天要谈到的一个优化性能的Tips使用结构体替代类。那么使用结构体替代类有什么好处呢&…

ISE14.7兼容性问题集锦

一、 关于win8和win10不兼容性解决办法 &#xff08;win7不会出现闪退的问题&#xff0c;按安装流程做完就可以直接使用了&#xff09; 在安装目录下&#xff0c;我这里是D:\ISE_14.7\14.7\ISE_DS\ISE\lib\nt64中找到libPortability.dll和libPortabilityNOSH.dll两个文件夹&…

幼儿园调查过程怎么写_深圳全托幼儿园哪个好 幼儿园寄宿怎么报名

陪孩子一起阅读的精髓不是认字和背诵&#xff0c;亲子阅读的那些事 亲子阅读是当代的养育新潮流&#xff0c;但它还有更可贵的一面。 脾气再大的妈妈&#xff0c;都有温柔可爱的时刻&#xff0c;就是陪伴孩子阅读的时刻&#xff0c;曾经有一位在我看来算不上温柔的妈妈&#xf…

ArcGIS实验教程——实验二:ArcGIS地理配准完整操作步骤

ArcGIS实验视频教程合集&#xff1a;《ArcGIS实验教程从入门到精通》&#xff08;附配套实验数据&#xff09; 目录 一、地理配准工具条简介 二、地理配准过程 1、加载数据&#xff08;点击下载&#xff09;提取码&#xff1a;v9y8 2、加载地理配准工具条 3、添加控制点 …

php基础教程 第二步 通俗易懂的学习变量、常量与数据类型

简介 变量、常量以及数据类型 在编程中&#xff0c;变量指一个存储值的一个盒子&#xff0c;或者说容器。例如一个箱子&#xff0c;用来放杂物&#xff0c;这个箱子就是一个容器&#xff0c;值就为杂物。容器可以分为很多类型&#xff0c;例如瓶子、被子、盒子等。值也有很多类…

可见光能量范围_JACS:游书力团队通过可见光促进的吲哚衍生物分子内去芳构化合成环丁烷稠合的四环吲哚螺环...

点击上方了解化学加VIP会员企业导读近日&#xff0c;中国科学院上海有机所游书力团队开发了一种可见光促进的吲哚衍生物分子内[22]环加成方法&#xff0c;可以极好的收率和立体选择性得到环丁烷稠合的四环吲哚螺环(Scheme 1&#xff0c;底部)。该成果近期发表在J. Am. Chem. So…

记将一个大型客户端应用项目迁移到 dotnet 6 的经验和决策

在经过了两年的准备&#xff0c;以及迁移了几个应用项目积累了让我有信心的经验之后&#xff0c;我最近在开始将团队里面最大的一个项目&#xff0c;从 .NET Framework 4.5 迁移到 .NET 6 上。这是一个从 2016 时开始开发&#xff0c;最多有 50 多位开发者参与&#xff0c;代码…

ArcGIS实验教程——实验一:ArcGIS软件的认识与使用

ArcGIS实验视频教程合集&#xff1a;《ArcGIS实验教程从入门到精通》&#xff08;附配套实验数据&#xff09; 实验目录 第一节 Esri简介 1.1 ESRI简介 1.2 Esri产品发展历程 第二节 ArcGIS简介 2.1 ArcGIS简介 2.2 ArcGIS产品体系 第三节 Desktop简介 3.1 Desktop简介…

10分钟学会vue滚动行为

滚动行为 什么是路由的滚动行为 当切换到新路由时&#xff0c;想要页面滚到顶部&#xff0c;或者是保持原先的滚动位置&#xff0c;就像重新加载页面那样 注意: 这个功能只在 HTML5 history 模式下可用。在这个模式下我们需要启动一个服务 我们用scrollBehavior 方法来做路由滚…

php基础教程 第三步 学习字符串及相关函数

字符串 上一节中我们学习了 php 变量、常量以及数据类型的一些概念。这一节中进一步学习数据类型中的字符串类型及其相关操作方法。 字符串指一串字符的合集。例如单个字符 a&#xff0c;单个字符 b&#xff0c;单个字符 c…这些 a、b、c 皆是字符&#xff1b;当把这些字符连…

Mirantis OpenStack fuel web 安装 使用

2019独角兽企业重金招聘Python工程师标准>>> MirantisOpenStack-4.0.iso的下载地址&#xff1a;http://pan.baidu.com/s/1dDsuzXf。下载之后使用虚拟机或者物理机安装都可以&#xff0c;我使用的是vmware。需要把NAT的自动分配ip功能关闭 1、创建虚拟机 &#xff08…

[图] DevOps:提速从研发到交付流程

你的产品要让用户等多久&#xff1f;制定需求、排期开发、部署调试……这些流程都再跑一遍&#xff1f;传统产品发布流程长&#xff0c;多分支、环境不一、人工操作导致容易出错。面对这些传统发布难题&#xff0c;DevOps才是正确的出路。

php基础教程 第四步 学习运算符

在前面的章节中&#xff0c;以及了解了一些运算法&#xff0c;接下来再讲解一些常规运算法。 加运算法&#xff0c;用来使左右两边的值或表达式进行加法计算。例如有一个变量$a&#xff0c;一个变量$b&#xff0c;它们的值都为9&#xff0c;$a$b为99等于10.。输出使用echo&…

JavaScript基础学习(七)—BOM

BOM(Browser Object Model): 浏览器对象模型。提供了独立于内容而与浏览器窗口交互的对象&#xff0c;BOM主要用于管理窗口和窗口之间的通讯。 一、Navigator对象 navigator对象通常用于获取浏览器和操作系统的信息。 navigator对象是window对象的属性&#xff0c;中文是&…

Spring初识

从上学期开始决心开始学习Spring&#xff0c;自己总是利用不好时间&#xff0c;到处瞎忙&#xff0c;结果浪费了好多时间。想着利用暑假的时间&#xff0c;专心看会儿书。最初我在Spring官网下载jar包的时候&#xff0c;忙会儿了半天愣是没找到下载的链接&#xff0c;瞬间觉得学…

Blazor University (17)使用 RenderFragments 模板化组件

原文链接&#xff1a;https://blazor-university.com/templating-components-with-renderfragements/使用 RenderFragments 模板化组件源代码[1]到目前为止&#xff0c;我们已经创建了基于参数生成 100% 渲染输出的组件&#xff0c;但组件并不总是那么简单。有时我们需要创建将…

php基础教程 第五步 逻辑控制

逻辑判断 在开发项目时&#xff0c;竟然会出现逻辑控制。例如当用户输入“hello”时你需要自动回复“hello 欢迎”&#xff0c;当用户设置的定时时间到达时&#xff0c;你需要提醒用户时间已经结束&#xff1b;再举个例子&#xff0c;在玩网络游戏时&#xff0c;用户控制的角色…

博图程序需要手动同步_贴吧求助帖博图实例单按钮控制灯的程序

接上一期在贴吧看见的求助帖(上图看得见水印)&#xff0c;因为没人回复&#xff0c;发帖的楼主好像删除了帖子。结果我抽时间用博图15.1&#xff0c;S71200做了一个&#xff0c;希望给需要帮助的新人能够起到作用&#xff0c;感觉有用的话可以关注一下我的公众号低压电工&#…

php基础教程 第六步 学习数组以及条件判断switch补充

条件语句 switch 在上一节的学习中&#xff0c;学习了php的条件语句if。在php编程中进行条件判断还可以使用switch语句。switch语句语法如下&#xff1a; <?php switch (值或表达式) { case 值等于值1:当值等于值1时要执行的代码break; case 值等于值2:当值等于值2时要执…