当前位置: 首页 > news >正文

花生壳做局域网站/商城系统开发

花生壳做局域网站,商城系统开发,网站建设中 模版,三网一体网站建设n−n−皇后问题是指将 nn 个皇后放在 nnnn 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 nn,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含整数 n…

n−n−皇后问题是指将 nn 个皇后放在 n×nn×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。

1_597ec77c49-8-queens.png

现在给定整数 nn,请你输出所有的满足条件的棋子摆法。

输入格式

共一行,包含整数 nn。

输出格式

每个解决方案占 nn 行,每行输出一个长度为 nn 的字符串,用来表示完整的棋盘状态。

其中 . 表示某一个位置的方格状态为空,Q 表示某一个位置的方格上摆着皇后。

每个方案输出完成后,输出一个空行。

注意:行末不能有多余空格。

输出方案的顺序任意,只要不重复且没有遗漏即可。

数据范围

1≤n≤91≤n≤9

输入样例:
4
输出样例:
.Q..
...Q
Q...
..Q...Q.
Q...
...Q
.Q..

思路

深度优先搜索,我们需要排除永远不可能的情况(剪枝),首先是初始化二维数组,把二维数组初始化为'.'

    for(int i=0;i<n;i++){for(int j=0;j<n;j++){g[i][j]='.';}}

深度优先搜索分两步走,第一步是判断有没有走到终点,走到终点就输出我们需要的答案

    if(u==n){for(int i=0;i<n;i++)    puts(g[i]);puts("");return;}

第二步是遍历每一行,利用条件判断,找到可以符合条件的情况(该题是行,对角线,反对角线不能被使用过),然后改变使用状态,修改字符数组的内容,递归调用dfs函数,恢复现场,把状态和字符数组的内容都修改回来

    int x=u;for(int y=0;y<n;y++){if(!col[y]&&!dg[y+x]&&!udg[y-x+n]){col[y]=dg[y+x]=udg[y-x+n]=true;g[x][y]='Q';dfs(x+1);col[y]=dg[y+x]=udg[y-x+n]=false;g[x][y]='.';}}

这里把u和i更换成了x和y,感觉更加方便理解

代码

#include<bits/stdc++.h>
using namespace std;int n;
const int N=20;
char g[N][N];
bool col[N],dg[N],udg[N];void dfs(int u)
{if(u==n){for(int i=0;i<n;i++)    puts(g[i]);puts("");return;}int x=u;for(int y=0;y<n;y++){if(!col[y]&&!dg[y+x]&&!udg[y-x+n]){col[y]=dg[y+x]=udg[y-x+n]=true;g[x][y]='Q';dfs(x+1);col[y]=dg[y+x]=udg[y-x+n]=false;g[x][y]='.';}}
}int main()
{scanf("%d",&n);for(int i=0;i<n;i++){for(int j=0;j<n;j++){g[i][j]='.';}}dfs(0);return 0;
}

 

 

 

 

相关文章:

温故知新:dfs模板-843. n-皇后问题

n−n−皇后问题是指将 nn 个皇后放在 nnnn 的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 nn&#xff0c;请你输出所有的满足条件的棋子摆法。 输入格式 共一行&#xff0c;包含整数 n…...

刷题笔记28——一直分不清的Kruskal、Prim、Dijkstra算法

图算法刷到这块&#xff0c;感觉像是走了一段黑路快回到家一样&#xff0c;看到这三个一直分不太清总是记混的名字&#xff0c;我满脑子想起的是大学数据结构课我坐在第一排&#xff0c;看着我班导一脸无奈&#xff0c;心想该怎么把这个知识点灌进木头脑袋里边呢。有很多算法我…...

Mysql时间同步设置

Mysql时间同步设置 当涉及到设置MySQL数据库时间与电脑同步时&#xff0c;实际的步骤可能会因操作系统和数据库版本的不同而有所差异。以下是一个基本的步骤示例&#xff0c;供您参考&#xff1a; 检查电脑时间&#xff1a; 首先确保电脑操作系统的时间是正确的。 设置MySQL时…...

如何理解分布式锁?

分布式锁的实现有哪些&#xff1f; 1.Memcached分布式锁 利用Memcached的add命令。此命令是原子操作&#xff0c;只有在key不存在的情况下&#xff0c;才能add成功&#xff0c;也就意味着线程得到了锁。 2.Reids分布式锁 和Memcached的方式类似&#xff0c;利用Redis的setn…...

windows 远程连接 ubuntu桌面xrdp

更新 sudo apt update安装组件 sudo apt-get install xorg sudo apt-get install xserver-xorg-core sudo apt-get install xorgxrdp sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsxrdp sudo apt install xrdp sudo systemctl status xrdp sudo …...

数据采集时使用HTTP代理IP效率不高怎么办?

在进行数据采集时&#xff0c;使用HTTP代理 可以帮助我们实现隐私保护和规避封禁的目的。然而&#xff0c;有时候我们可能会遇到使用HTTP代理 效率不高的问题&#xff0c;如连接延迟、速度慢等。本文将为您分享解决这一问题的实用技巧&#xff0c;帮助您提高数据采集效率&#…...

你了解的SpringCloud核心组件有哪些?他们各有什么作用?

SpringCloud 1.什么是 Spring cloud Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型&#xff0c;帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上&#xff0c;使得开发者很容易入手并快速应用于生产中。…...

【Gradle-10】不可忽视的构建分析

1、前言 构建性能对于生产力至关重要。 随着项目越来越复杂&#xff0c;花费在构建上的时间就越长&#xff0c;开发效率就越低。 通过分析构建过程&#xff0c;可以了解项目构建的时间都花在哪&#xff0c;以及项目存在哪些潜在的问题&#xff0c;找到构建瓶颈&#xff0c;解…...

2034. 股票价格波动

给你一支股票价格的数据流。数据流中每一条记录包含一个 时间戳 和该时间点股票对应的 价格 。 不巧的是&#xff0c;由于股票市场内在的波动性&#xff0c;股票价格记录可能不是按时间顺序到来的。某些情况下&#xff0c;有的记录可能是错的。如果两个有相同时间戳的记录出现…...

JavaScript 事件详解细节

JavaScript 事件详解细节 JavaScript 中的事件是前端开发中非常重要的一个概念。通过事件&#xff0c;我们可以捕捉和响应用户与网页的交互&#xff0c;比如点击按钮、输入文字等。这篇博客文章将详细介绍 JavaScript 中的事件&#xff0c;希望能帮助你更好地理解和使用这一功…...

【MySQL】事务管理

目录 MySQL事务管理 事务的概念 事务的版本支持 事务的提交方式 事务的相关演示 事务的隔离级别 查看与设置隔离级别 读未提交&#xff08;Read Uncommitted&#xff09; 读提交&#xff08;Read Committed&#xff09; 可重复读&#xff08;Repeatable Read&#xf…...

Git 学习笔记 | Git 基本操作命令

Git 学习笔记 | Git 基本操作命令 Git 学习笔记 | Git 基本操作命令文件的四种状态查看文件状态忽略文件 Git 学习笔记 | Git 基本操作命令 文件的四种状态 版本控制就是对文件的版本控制&#xff0c;要对文件进行修改、提交等操作&#xff0c;首先要知道文件当前在什么状态&…...

第五章:最新版零基础学习 PYTHON 教程—Python 字符串操作指南(第七节 - Python 中的字符串模板类)

在字符串模块中,模板类允许我们为输出规范创建简化的语法。该格式使用由 $ 和有效 Python 标识符(字母数字字符和下划线)组成的占位符名称。用大括号将占位符括起来,使其后面可以跟更多的字母数字字母,且中间不留空格。写入 $$ 会创建一个转义的 $。 Python 字符串模板:…...

第八章 排序 十四、最佳归并树

目录 一、定义 二、多路最佳归并树 三、多路最佳归并树少了一个归并段 四、总结 一、定义 最佳归并树是指将若干个有序序列合并成一个有序序列的一种方式&#xff0c;使得所有合并操作的总代价最小的一棵二叉树。其中&#xff0c;代价通常指合并两个有序序列的操作次数或比…...

Python 中,类的方法的标准注释模板

在 Python 中&#xff0c;类的标准注释通常遵循以下格式&#xff1a; class 类名:"""类的简要描述属性:- 属性1 (类型): 属性1的描述- 属性2 (类型): 属性2的描述方法:- 方法1(): 方法1的描述- 方法2(): 方法2的描述示例:>>> 对象 类名()>>>…...

IPSG技术和IP组播

1&#xff0c;IPSG技术概述 实验&#xff1a; DHCP snooping IPSG 拓扑&#xff1a; 需求&#xff1a; 1&#xff0c;实现PC1 和PC2 动态获取IP地址 2, 在SW2 配置DHCP snooping 实现DHCP 服务器的安全 3, 在 连接PC 1 和 PC2 的 接口上 做IPSG &#xff0c;防止终端…...

【大数据】Apache NiFi 助力数据处理及分发

Apache NiFi 助力数据处理及分发 1.什么是 NiFi &#xff1f;2.NiFi 的核心概念3.NiFi 的架构4.NiFi 的性能预期和特点5.NiFi 关键特性的高级概览 1.什么是 NiFi &#xff1f; 简单的说&#xff0c;NiFi 就是为了解决不同系统间数据自动流通问题而建立的。虽然 dataflow 这个术…...

什么是 SRE?一文详解 SRE 运维体系

目录 可观测性系统 故障响应 故障复盘 测试与发布 容量规划 自动化工具开发 用户体验 可观测性系统 在任何有一定规模的企业内部&#xff0c;一旦推行起来整个SRE的运维模式&#xff0c;那么对于可观测性系统的建设将变得尤为重要&#xff0c;而在整个可观测性系统中&a…...

【Docker】初识 Docker,Docker 基本命令的使用,Dockerfile 自定义镜像的创建

文章目录 前言&#xff1a;项目部署的挑战一、初识 Docker1.1 什么是 Docker1.2 Docker 与 虚拟机的区别1.3 镜像和容器以及镜像托管平台1.4 Docker的架构解析1.5 Docker 在 CentOS 中的安装 二、Docker 的基本操作2.1 操作 Docker 镜像命令2.1.1 镜像操作相关命令2.1.2 示例一…...

【Docker】简易版harbor部署

文章目录 依赖于docker-compose下载添加执行权限测试 安装harbor下载解压修改配置文件部署配置开机自启动登录验证 使用harbor登录打标签上传下载 常见问题 依赖于docker-compose 下载 curl -L “https://github.com/docker/compose/releases/download/2.22.0/docker-compose-…...

Zookeeper经典应用场景实战(一)

文章目录 1、Zookeeper Java客户端实战1.1、 Zookeeper 原生Java客户端使用1.2、 Curator开源客户端使用 2、 Zookeeper在分布式命名服务中的实战2.1、 分布式API目录2.2、 分布式节点的命名2.3、 分布式的ID生成器 3、Zookeeper实现分布式队列3.1、 设计思路3.2、 使用Apache …...

Chrome报错:Unchecked runtime.lastError

项目背景、安装了 Express 框架&#xff0c;目的是为了快速创建一个web服务器。创建成功后&#xff0c;控制台出现了报错&#xff0c;而在这之前没有出现过这个错误&#xff0c;所以一直在纠结是不是框架本身的问题。 错误原因&#xff1a;这个错误一般是浏览器与扩展或者插件…...

【算法】算法设计与分析 课程笔记 第三章 动态规划

1.1 动态规划简介 1.1.1 引例 动态规划算法和分治法类似&#xff0c;基本思想也是将待求解问题分解成若干个子问题&#xff0c;子问题可以以继续拆分&#xff0c;直到问题规模达到临界条件即可。多说无益&#xff0c;举个例子来解释一下&#xff1a; 这其实是一个多阶段图求最…...

贪心找性质+dp表示+矩阵表示+线段树维护:CF573D

比较套路的题目 首先肯定贪心一波&#xff0c;两个都排序后尽量相连。我一开始猜最多跨1&#xff0c;但其实最多跨2&#xff0c;考虑3个人的情况&#xff1a; 我们发现第3个人没了&#xff0c;所以可以出现跨2的情况 然后直接上dp&#xff0c;由 i − 1 , i − 2 , i − 3 i…...

小谈设计模式(17)—状态模式

小谈设计模式&#xff08;17&#xff09;—状态模式 专栏介绍专栏地址专栏介绍 状态模式关键角色上下文(Context)抽象状态(State)具体状态(Concrete State) 核心思想Java程序实现首先&#xff0c;我们定义一个抽象状态类 State&#xff0c;其中包含一个处理请求的方法 handleRe…...

Arm64体系架构-MPIDR_EL1寄存器

背景 在Arm64多核处理器中, 各核间的关系可能不同. 比如1个16 core的cpu, 每4个core划分为1个cluster,共享L2 cache. 当我们需要从core 0将任务调度出来时,如果优先选择core 1~3, 那么性能明显时优于其他core的. 那么操作系统怎么知道core之间这样的拓扑信息呢? Arm提供了MPID…...

MySQL支持哪些存储引擎

mysql支持九大存储引擎&#xff1a; 1&#xff09;MYISAM存储引擎&#xff08;优点&#xff1a;可被转换为压缩、只读表来节省空间。&#xff09; 它管理的表具有以下特征&#xff1a; 使用三个文件表示每个表 格式文件-存储表结构的定义&#xff08;mytable.frm) 数据文件-存…...

ElementUI结合Vue完成主页的CUD(增删改)表单验证

目录 一、CUD ( 1 ) CU讲述 ( 2 ) 编写 1. CU 2. 删除 二、验证 前端整合代码 : 一、CUD 以下的代码基于我博客中的代码进行续写 : 使用ElementUI结合Vue导航菜单和后台数据分页查询 ( 1 ) CU讲述 在CRUD操作中&#xff0c;CU代表创建&#xff08;Create&#xff09…...

Flutter开发笔记 —— 语音消息功能实现

前言 最近在开发一款即时通讯(IM)的聊天App&#xff0c;在实现语音消息功能模块后&#xff0c;写下该文章以做记录。 注&#xff1a;本文不提供相关图片资源以及IM聊天中具体实现代码&#xff0c;单论语音功能实现思路 需求分析 比起上来直接贴代码&#xff0c;我们先来逐步…...

冒泡排序和选择排序

目录 一、冒泡排序 1.冒泡排序的原理 2.实现冒泡排序 1.交换函数 2.单躺排序 3.冒泡排序实现 4.测试 5.升级冒泡排序 6.升级版代码 7.升级版测试 二、选择排序 1.选择排序的原理 2.实现选择排序 1.单躺排序 2.选择排序实现 3.测试 ​4.修改 5.测试 一、冒泡排序…...