OJ_八皇后

题干

在这里插入图片描述

C++实现

  • 深度优先遍历,注意回溯
  • 打表法:先求出所有解,再存入一个容器中
#define _CRT_SECURE_NO_WARNINGS#include <iostream>
#include <vector>using namespace std;vector<vector<int>> queenVec;//用来存在所有合法的皇后序列void DFSFindQueen(vector<int>& queen, int pos) {//打算放下一个皇后,//i就是第pos号皇后打算放的列数for (int i = 1; i <= 8; ++i) {bool isOk = true;//j是用来遍历之前已经放好的皇后 0~pos-1for (int j = 0; j < pos; ++j) {//同列就是queen[j] == i//斜对角就是pos-j == queen[j] - i或pos-j == i-queen[j],行数差距等于列数差距if (queen[j] == i || pos - j == queen[j] - i || pos - j == i - queen[j]) {isOk = false;break;}}if (isOk) {queen.push_back(i);//将pos号皇后的列数设置好if (pos == 7) {//8个皇后都已经放好了queenVec.push_back(queen);printf("\"");for (int k = 0; k < 8; k++){printf("%d", queen[k]);}printf("\",\n");}else {DFSFindQueen(queen, pos + 1);}//回溯queen.pop_back();}}
}vector<string> queenString = {"15863724","16837425","17468253","17582463","24683175","25713864","25741863","26174835","26831475","27368514","27581463","28613574","31758246","35281746","35286471","35714286","35841726","36258174","36271485","36275184","36418572","36428571","36814752","36815724","36824175","37285146","37286415","38471625","41582736","41586372","42586137","42736815","42736851","42751863","42857136","42861357","46152837","46827135","46831752","47185263","47382516","47526138","47531682","48136275","48157263","48531726","51468273","51842736","51863724","52468317","52473861","52617483","52814736","53168247","53172864","53847162","57138642","57142863","57248136","57263148","57263184","57413862","58413627","58417263","61528374","62713584","62714853","63175824","63184275","63185247","63571428","63581427","63724815","63728514","63741825","64158273","64285713","64713528","64718253","68241753","71386425","72418536","72631485","73168524","73825164","74258136","74286135","75316824","82417536","82531746","83162574","84136275"
};int main()
{//vector<int> queen;//用来记录已经放好的,皇后的位置//DFSFindQueen(queen, 0);int n;scanf("%d", &n);for (int i = 0; i < n; i++){int b;scanf("%d", &b);printf("%s\n", queenString[b-1].c_str());}return 0;
}

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

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

相关文章

2024年中国AI服务器行业发展

环洋咨询Global Info Research的AI服务器市场调研报告提供AI服务器市场的基本概况&#xff0c;包括定义&#xff0c;分类&#xff0c;应用和产业链结构&#xff0c;同时还讨论发展政策和计划以及制造流程和成本结构&#xff0c;分析AI服务器市场的发展现状与未来市场趋势&#…

Flink通讯模型—Akka与Actor模型

Carl Hewitt 在1973年对Actor模型进行了如下定义&#xff1a;"Actor模型是一个把Actor作为并发计算的通用原语". Actor是异步驱动&#xff0c;可以并行和分布式部署及运行的最小颗粒。也就是说&#xff0c;它可以被分配&#xff0c;分布&#xff0c;调度到不同的CPU&…

操作系统总结(第二周 第一堂)

前言&#xff1a; 第一周的重点就在于一张图表&#xff1a; 基于这张图&#xff0c;我们将陷入内核分为了两个大块Trap和Interrupt。同时我们知道一件事情任何一次I/O操作或者错误程序操作都将陷入内核&#xff0c;从而使得内核可以监控所有的外部设备以及维护整个电脑程序运行…

C语言 --- 指针(5)

目录 一.sizeof和strlen对比 1.sizeof 2.strlen 3.strlen 和sizeof的对比 二.数组和指针笔试题目详解 回顾&#xff1a;数组名的理解 1.一维数组 2.字符数组 代码1&#xff1a; 代码2&#xff1a; 代码3&#xff1a; 代码4&#xff1a; 代码5&#xff1a; 代码6&am…

Mysql引擎MyISAM

MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;后来被Sun Microsystems收购&#xff0c;并于2010年纳入Oracle公司。MySQL的架构主要分为四个层次&#xff0c;分别是连接层&#xff0c;服务层&#xff0c;引擎层和物理文件存储层。其中&#…

【智能算法】白鲨算法(AVOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景 2022年&#xff0c;Braik 等人受到白鲨捕食行为启发&#xff0c;提出了非洲秃鹫优化算法(White Shark Optimizer, WSO)。 2.算法原理 2.1算法思想 海洋中白鲨拥有敏锐的感知、听觉和嗅觉&#xf…

Solidity Uniswap V2 Router contract addLiquidity

router 合约是一种高级合约&#xff0c;是大多数用户应用程序的入口点。通过该合约&#xff0c;可以更轻松地创建交易对、添加和删除流动性、计算交换中的价格变化以及执行交换。Router 适用于通过工厂合约部署的所有交易对&#xff0c;是一种通用合约。 GitHub - XuHugo/soli…

Linux-TCP并发模型相关函数接口-014

1【TCP】多线程模型 相关函数接口已在前面章节介绍&#xff0c;这里不再赘述源码示例&#xff08;1&#xff09;&#xff1a; //【client.c】 int CreateTcpClient(char *pip, int port) {int ret 0;int sockfd 0;struct sockaddr_in seraddr;sockfd socket(AF_INET, SOCK…

Nginx:配置拦截/禁用ip地址

分析nginx日志 1、分析截止目前为止访问量最高的ip排行 awk {print $1} access.log |sort |uniq -c|sort -nr |head -20过滤出access.log日志文件中访问量前20的ip sort &#xff1a;将文件进行排序&#xff0c;并将排序结果标准输出uniq -nr &#xff1a; 去重并在右边显示…

第110讲:Mycat实践指南:指定Hash算法分片下的水平分表详解

文章目录 1.应用指定Hash算法分片的概念2.使用应用指定Hash算法分片对某张表进行水平拆分2.1.在所有的分片节点中创建表结构2.2.配置Mycat实现应用指定Hash算法分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分片规则配置文件2.2.3.配置Server配置文件2.2.4.重启Mycat …

前置机的使用以及个跳板机介绍

前言 前置机、网闸和摆渡机都是为了内网安全&#xff0c;尤其是银行、券商、电信运营商等的内网核心后台系统的安全&#xff0c;而使用的技术手段。跳板机和堡垒机则是为了运维人员远程访问控制系统而搭建的机器。 一、前置机 1. 作用 前置机&#xff0c;指代的是设置在后台系…

2014-2023年各地级市空气质量指数AQI指数日度数据

2014-2023年各地级市空气质量指数AQI指数日度数据 1、时间&#xff1a;2014-2023.3.8 2、来源&#xff1a;https://www.qweather.com/air/beiliu-101300903.htm 3、指标&#xff1a;统计日期、地区编码ID、地区代码、地区名称、AQI指数、空气质量级别、首要污染物 4、样本量…

教你三指针拿捏链表翻转

类似上图&#xff0c;其实步骤很简单&#xff0c;用三个指针pre&#xff0c;cur&#xff0c;temp&#xff0c;看英文也知道具体含义&#xff0c;前向&#xff0c;当前&#xff0c;和用于保存剩余的链表 &#xff0c;具体看下图&#xff0c;很清晰 class Solution { public:List…

CH343 使用USB转串口发送CAN报文

文章目录 原启UART 走CAN收发器CH343 模拟CAN发送CPP ASIO SocketCANVXCANGithub Link 原启 早些年自动驾驶激光雷达还不支持PTP之类的时间同步, 很多都是用PPS时间同步, 激光雷达一般装的离控制器或者GNSS天线较远, 车上的线束一般数据电源各种都包在一起的, 如果3.3V直接从域…

JAVA内存屏障、volatile关键字、synchronized关键字

内存屏障&#xff08;Memory Barrier&#xff09;&#xff0c;也称为内存栅栏或内存屏障指令&#xff0c;是一种硬件或软件机制&#xff0c;用于限制对内存操作的重排序和优化。它们用于确保多线程程序中的内存访问操作按照预期顺序执行&#xff0c;以避免由于并发访问导致的数…

使用maven打生产环境可执行包

一、程序为什么要打包 程序打包的主要目的是将项目的源代码、依赖库和其他资源打包成一个可执行的文件或者部署包&#xff0c;方便程序的发布和部署。以下是一些打包程序的重要理由&#xff1a; 方便部署和分发&#xff1a;打包后的程序可以作为一个独立的实体&#xff0c;方便…

leetCode刷题 13. 罗马数字转整数

目录 题目&#xff1a; 1. 思路 2. 解题方法 3. 复杂度 4. Code 题目&#xff1a; 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L …

降低cpu占用率的方法

在 C 中&#xff0c;sleep(0) 并不会真正让线程休眠 0 秒。相反&#xff0c;它会暂停当前线程&#xff0c;使得其他线程有机会在当前线程之后执行。这在多线程环境中常用于实现一种简单的自旋锁。 当你调用 sleep(0) 时&#xff0c;它会让当前线程放弃 CPU 使用权&#xff0c;…

Vmware虚拟机使用过程中断电后无法重启处理

背景 今天在用新装的虚拟机进行测试的过程中&#xff0c;忽然笔记本关机了&#xff08;没插电源线&#xff09;&#xff0c;重启电脑后发现虚拟机提示“正在使用中“&#xff0c;具体如下所示&#xff1a; 解决 在相关虚拟机文件夹内查找以 .lck 结尾的文件&#xff0c;名称一…

Vue:封装响应式数据的防抖函数

代码&#xff1a; ts文件&#xff1a; import { customRef } from "vue"; export function useFangdou<T>(value: T, delay 200) {let timeout: number;return customRef((track, trigger) > {return {get() {track();return value;},set(newValue: T) {…