C++ dfs状态的表示(五十三)【第十三篇】

今天我们将来求解N皇后问题。

1.N皇后问题

N 皇后问题是一个经典的问题,在一个 N×N 的棋盘上放置 N 个皇后,每行刚好放置一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)。

图片

上图就是一个合法的 8 皇后的解。
N 皇后问题是指:计算一共有多少种合法的方法放置 N 个皇后。

很显然,我们依然会用 dfs 来求解 
N 皇后问题,我们的搜索策略如下。

从第 0 列开始,我们依次给每一列放置一个皇后,对于一个确定的列,我们只需要去枚举放置的行即可,在保证放置合法的情况下,一直搜索下去。

下图是 N=4 时搜索树的局部形态:

图片

上图中每个状态下的 
−2,−1,0 表示的是该状态的冲突次数(在多少列或斜线发生冲突),只有当冲突次数为 
0 时才是合法状态。

确定了搜索策略,现在我们还有一个问题没有解决,那么就是如何判

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

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

相关文章

游泳佩戴耳机会对耳朵有危害吗?什么样的耳机适合游泳时佩戴

游泳佩戴耳机会对耳朵造成危害吗?答案并不绝对,关键在于选择什么样的耳机。如果使用的是普通耳机或者防水性能不高的蓝牙耳机,在水中使用时,水可能会进入耳机内部,导致耳机损坏,甚至引发中耳炎等耳部疾病。…

MySQL-运维

一、日志 1.错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysql启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关性息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的&#xf…

Linux---网络套接字

端口号 端口号 端口号是一个2字节16位的整数; 端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理; IP地址 端口号能够标识网络上的某一台主机的某一个进程; 一个端口号只能被一个进程占用 在公网上,IP地址能表示唯一的一台主机&…

分享66个时间日期JS特效,总有一款适合您

分享66个时间日期JS特效,总有一款适合您 66个时间日期JS特效下载链接:https://pan.baidu.com/s/1niQUpDSs10gfGYKYnEgKRg?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,…

单片机学习笔记---AT24C02(I2C总线)

目录 有关储存器的介绍 存储器的简介 存储器简化模型 AT24C02介绍 AT24C02引脚及应用电路 I2C总线介绍 I2C电路规范 开漏输出模式和弱上拉模式 其中一个设备的内部结构 I2C通信是怎么实现的 I2C时序结构 起始条件和终止条件 发送一个字节 接收一个字节 发送应答…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月12日,星期一

每天一分钟,知晓天下事! 2024年2月12日 星期一 农历正月初三 1、 注意错峰出行!今起全国公路网流量将处于高位运行状态。 2、 中国旅游研究院:预计2024年国内旅游人数或超60亿人次。 3、 阔别四年,北京、贵阳、张家…

指纹浏览器如何颠覆传统浏览器的使用?

传统浏览器在互联网时代发挥了巨大的作用,但随着科技的不断进步和用户需求的不断变化,新一代的浏览器工具开始崭露头角。指纹浏览器作为一种创新性的浏览器工具,正逐渐颠覆传统浏览器的使用方式。本文将探讨指纹浏览器如何颠覆传统浏览器&…

常用的EasyExcel表格处理-1(设置批注、下拉选)

EasyExcel官网:点击查看 1、模板表头设置批注 此处主要根据自定义处理类CustomCellWriteHandler进行处理。 1.1 前端调用controller PostMapping("/download/template")public void toDoExport(HttpServletResponse response) {// 设置模拟表头&#x…

###C语言程序设计-----C语言学习(12)#进制间转换,十进制,二进制,八进制,十六进制

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 计算机处理的所有信息都以二进制形式表示,即数据的存储和计算都采…

数模.微分方程

或者可以建立一个是实时脚本,也可以转化成上图公式 solver只是一个代名词,代表的是后面七种函数的名字 百分之九十用ode45函数 注意df1是在另外一个文件里面 计算导弹追击问题没有记录,去文件找代码

从github上拉取项目到pycharm中

有两种方法,方法一较为简单,方法二用到了git bash,推荐方法一 目录 有两种方法,方法一较为简单,方法二用到了git bash,推荐方法一方法一:方法二: 方法一: 在github上复制…

《UE5_C++多人TPS完整教程》学习笔记8 ——《P9 访问 Steam(Acessing Steam)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P9 访问 Steam(Acessing Steam)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…