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.hqwc.cn/news/540338.html

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

相关文章

基于SpringBoot+Vue的电商应用系统的设计与实现

1 绪论 1.1研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大环境让那些止步不前&…

梵宁教育是诈骗机构吗?是否存在坑人行为

近日&#xff0c;注意到网络上出现了一些关于梵宁教育涉嫌诈骗及虚假宣传的言论&#xff0c;这些言论严重损害了梵宁教育的声誉和形象。在此&#xff0c;我们郑重声明&#xff1a;梵宁教育始终坚守诚信原则&#xff0c;从未进行过任何诈骗或虚假宣传行为。 梵宁教育自成立以来&…

损失函数和反向传播

1. 损失函数的基础 import torch from torch.nn import L1Loss from torch import nninputs torch.tensor([1, 2, 3], dtypetorch.float32) targets torch.tensor([1, 2, 5], dtypetorch.float32)inputs torch.reshape(inputs, (1, 1, 1, 3)) targets torch.reshape(targe…

基于SSM+Vue的龙腾公司员工信息管理系统设计与实现

​ 1 绪论 1.1研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大环境让那些止步不前&a…

分享几套ArcGIS和CAD的三调符号库和使用

在粉丝群中呢&#xff0c;一直有朋友需要三调的符号库。今天就分享几套供大家学习使用&#xff01; 这次符号库有ArcGIS和CAD的&#xff0c;使用方法可参考我们的课程学习。 分享的三调符号库&#xff0c;也是粉丝群中收集的&#xff0c;分享给大家。符号库的质量还请大家自我斟…

Python·算法·每日一题(3月15日)合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&am…

FreeRTOS操作系统学习——软件定时器

软件定时器介绍 软件定时器允许设置一段时间&#xff0c;当设置的时间到达之后就执行指定的功能函数&#xff0c;被定时器调用的这个功能函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期&#xff0c;简而言之&#xff0c;当定时器的定时周期到了以后就…

Linux 多进程开发(下)

第二章 Linux 多进程开发 2.6 进程间通信2.6.1 匿名管道2.6.2 有名管道2.6.3 内存映射2.6.4 信号2.6.5 共享内存 2.7 守护进程 网络编程系列文章&#xff1a; 第1章 Linux系统编程入门&#xff08;上&#xff09; 第1章 Linux系统编程入门&#xff08;下&#xff09; 第2章 L…

【C++map和set容器:AVL树、红黑树详解并封装实现map和set】

[本节目标] map和set底层结构 AVL树 红黑树 红黑树模拟实现STL中的map和set 1.底层结构 前面对map/multimap/set/multiset进行了简单的介绍&#xff0c;在其文档介绍中发现&#xff0c;这几个容器有个 共同点是&#xff1a;其底层都是按照二叉搜索树来实现的&#xff0c;但…

2024/03/14(网络编程·day2)

一、思维导图 二、TCP通信 //服务器 #include<myhead.h>#define SER_PORT 8888 //服务器端口号 #define SER_IP "192.168.117.103" //服务器IP int main(int argc, const char *argv[]) {//1、创建一个套接字int sfd -1;sfd socket(AF_INET,SOCK_STREAM,…

阿里云价格战的背后(附阿里云服务器优惠价格明细表)

2024阿里云服务器优惠活动政策整理&#xff0c;阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年&#xff0c;云服务器4核16G10M带宽26元1个月、149元半年&#xff0c;云服务器8核…

通过Rothko罗斯科绘画学习CSS盒子

本文章属于学习笔记&#xff0c;在https://www.freecodecamp.org/chinese/learn/2022/responsive-web-design/中练习 1、使用 padding 简写属性来增加两个元素之间的空间到。 .canvas {} .frame { padding:50px; }2、overflow 设置为 hidden - 将画布更改回其原始尺寸。overfl…