【说人话的算法小课堂】N 皇后问题(C++ 实现)_n皇后问题怎么样输出一个可行解后就停止-程序员宅基地

技术标签: 基础课  人话  # 算法(基础)  

N皇后问题

把n个皇后放在n×n的国际象棋棋盘的格子上,要求任意两个皇后不能处于同一条水平线、垂直线或对角线。给出任意一个可行解。
算法:
设横纵坐标的范围都是离散闭区间[0,n – 1]。
先确定每个皇后的横坐标。这里通过随机方法确定,将离散闭区间[0,n – 1]的整数打乱顺序并放入一个数组。按顺序访问这个数组,尝试放置每个皇后于指定的横坐标。
尝试放置第i个皇后时,纵坐标也用同样的方法随机确定。尝试放置后,先进行检查,考察是否有任意两个皇后的摆放位置不符合要求。如果都符合,则尝试摆放第(i + 1)个皇后;如果不符合,则该皇后的纵坐标要更改;如果这个皇后在这一列无论摆放哪个位置都不符合要求,就证明之前的摆放方案不对,更改第(i – 1)个皇后的纵坐标。
如果n个皇后都能摆放完毕,算法结束。
仅当n = 1或n≥4时才有解。

在这里插入图片描述代码实现:

#include <algorithm>
#include <bitset>
#include <chrono>
#include <iostream>
#include <random>
using namespace std;

const int nmax = 1024;
struct point {
   
     int x, y; };
uniform_int_distribution<int> u(0, INT32_MAX); mt19937_64 r;
int n, x[nmax]; point c[nmax]; bitset<nmax> b[nmax];

inline bool check(int n, const int* y) {
   
    
	for 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/COFACTOR/article/details/106804210

智能推荐

电脑组装笔记:手把手教你如何自己组装电脑_电脑组装教程-程序员宅基地

文章浏览阅读3.5k次,点赞3次,收藏27次。电脑组装基本操作:手把手教你如何自己组装电脑第一步:安装CPU拆开所有包装后的第一步,先把CPU安装到主板的CPU插座上。先要把插座上的保护盖翻开,然后再把CPU放入CPU插座。然后把cp..._电脑组装教程

51单片机实现LCD1602的显示_pz51 lcd1602-程序员宅基地

文章浏览阅读1.3k次。51单片机实现LCD1602的显示_pz51 lcd1602

视频编解码(一):ffmpeg编码H.264帧类型判断_max_b_frames-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏29次。本文主要讲述ffmpeg编码过程中是如何设置I帧,B帧及P帧的,以及如何通过代码判断帧类型。之前看过很多网上的文章,讲述如何判断I帧,B帧,P帧,然而都是停留在H.264官方文档中的定义,如果不结合ffmpeg,就仿佛纸上谈兵,有点不切实际,而且很多文章将I帧与I Slice混为一谈,将I Slice当做I帧,这其实是错的。本文就结合ffmpeg讲解ffmpeg中是如何编码各种帧类型的,并纠正..._max_b_frames

杂谈---2013年,总结?吐槽?灌水?-程序员宅基地

文章浏览阅读678次。引言   最近看到不少猿友都纷纷总结起自己的2013年,LZ也赶赶热潮,对自己一年的收获与失去来个大阅兵,这确实有助于自己来年的规划。如果各位猿友不喜欢写博客,也应该以其它的方式对自己进行总结,相信总是有好处的。至于LZ,已经习惯了博客,因此就暂且采取这种方式了。不过LZ也只是让手指在键盘上随心而动,所以难免是水文一篇,各位猿友尽可一笑而过。 技术方面    既然是一个技术

SpringSecurity自定义登录验证成功与失败的结果处理_在spring security6.0中,如何不走savedrequestawareauthenti-程序员宅基地

文章浏览阅读1.2k次。需要自定义登录结果的场景当我们登录成功的时候,是由AuthenticationSuccessHandler进行登录结果处理,默认跳转到defaultSuccessUrl配置的路径对应的资源页面(一般是首页index.html)。当我们登录失败的时候,是由AuthenticationfailureHandler进行登录结果处理,默认跳转到failureUrl配置的路径对应的资源页面(一般是登录页login.html)。但是在web应用开发过程中需求是千变万化的,有时需要我们针对登录结果做个性化处理,比如_在spring security6.0中,如何不走savedrequestawareauthenticationsuccesshandler

记一次分析解决ANR过程_main" prio=5 tid=1 suspended-程序员宅基地

文章浏览阅读8.8k次。ANR即Application Not Responding,一直觉得只要在主线程中注意不要执行耗时操作就不会发生ANR,然而事实告诉我我还是too young too simple,sometimes naive 啊。以前也没遇到过ANR,没分析过ANR,问过同事,同事也说没弄过,没办法只能自己找资料了。ANR问题的分类InputDispatchingTimedOut 应用程序主线程在5秒内没_main" prio=5 tid=1 suspended

随便推点

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java小区宠物管理系统k8n96_小区宠物管理源码-程序员宅基地

文章浏览阅读137次。选好题目最起码有方向,接下来找相应的源代码进行参考就行,下面的选题有合适的选题源代码可以在文末尾进行获取参考。做毕业设计的过程也是不断修正的过程要和自己的计划安排进行比对,慢了要赶工,快了可以调整工作量。选题的确定需要查阅大量的资料,要搞清楚自己大概想要研究的方向是什么。可以选择自己感兴趣的学科或者强势的学科进行研究,同时要多和毕业指导老师多交流,征求老师的意见和建议,最后确立选题。ssm基于SSM的社区疫情防控管理信息系统的设计与实现khjit。ssm基于SSM的资产管理平台的设计与实现hx448。_小区宠物管理源码

ArcSDE10.x创建企业级地理数据库报:The geodatabase system table could not be created.GDB_Items : Error (-51)_arcmap建立数据库gdb_tables_last_modified : error (-51)-程序员宅基地

文章浏览阅读8.7k次。环境ArcGIS10.x for Desktop、Oracle11g问题使用ArcGIS 10.x for Desktop的Create Enterprise Geodatabase工具创建企业级地理数据库,出现错误:Executing: EnableEnterpriseGeodatabase "Database Connections\Connection to 10.20.128.230.sd_arcmap建立数据库gdb_tables_last_modified : error (-51)

实践计算机系统要素—编译器(1)_计算机编译器是什么-程序员宅基地

文章浏览阅读898次。 2009.11.08 晚上 于浦东家中 每当有所收获,便欣喜若狂,每每这时都非常渴望能够将这份喜悦与大家一起分享。我读过计算机书籍不能算多,但也不少,给我冲击最大的有三本书,游戏编程大师技巧(3D版),道法自然,计算机系统要素,大师技巧让我感慨怎么能有人将游戏开发讲解的如此透彻,让人感觉直击理论本质;道法自然让我感觉到了软件工程和设计模式在实际中是如何被应用的,计算机系统要_计算机编译器是什么

若依前后端分离版导出功能_若依导出功能-程序员宅基地

文章浏览阅读5.1k次。官方文档写的导出功能,我写着报错,所以重新写了个导出功能_若依导出功能

Java-transient关键字_将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被-程序员宅基地

文章浏览阅读135次。一、初识transient关键字1、概念将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被序列化。2、实例public class Test { public static void main(String[] args) throws IOException, ClassNotFoundException { write();..._将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被

mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题_phpstrudy of select list is not in group by clause-程序员宅基地

文章浏览阅读144次。今日在用group by 分组的时候遇到了以上问题!看了sql语句一下午也没发现什么问题!百度吧,也没有结果,仔细检查了一下发现我用的是phpstudy新推出的面板,mysql默认的是8.0版本的我并未进行更改一直那么用了!没办法查mysql手册吧!原来是因为:MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQ..._phpstrudy of select list is not in group by clause and contains nonaggregate

推荐文章

热门文章

相关标签