【Python数据结构与算法】递归----N皇后问题

devtools/2024/9/22 17:01:11/

在这里插入图片描述

题目:N皇后问题

描述
国际象棋的棋盘是由8×8共64个方格构成,棋子放在方格里面。如果两个皇后棋子在同一行、同一列,或者在某个正方形的对角线上,那么这两个皇后就会互相攻击。请在棋盘上摆放8个皇后,使得它们都不会互相攻击。这是经典的8皇后问题。

现在要解决N皇后问题:将N个皇后摆放在一个N行N列的国际象棋棋盘上,要求任何两个皇后不能互相攻击。输入皇后数N(1<=N<=9),输出所有的摆法。无解输出"NO ANSWER"。行列号都从0开始算。

输入
一个整数N,表示要把N个皇后摆放在一个N行N列的国际象棋棋盘上
输出
所有的摆放放案。每个方案一行,依次是第0行皇后位置、第1行皇后位置…第N-1行皇后位置。
多种方案输出顺序如下:优先输出第0行皇后列号小的方案。如果两个方案第0行皇后列号一致,那么优先输出第1行皇后列号小的方案…以此类推
样例输入

python">4

样例输出

python">1 3 0 2 
2 0 3 1 

AC代码

python">result = [0] * 12 	def isOk(n,pos):	for i in range(n):if result[i] == pos or abs(i-n) == abs(result[i] - pos):return Falsereturn True
def queen(N,i):if i == N: for k in range(N):print(result[k], end=" ")print("")return Truesucceed = Falsefor k in range(N):    if isOk(i,k):      result[i] = k  succeed = queen(N,i+1) or succeed   return succeed
N = int(input())
if not queen(N,0):print("NO ANSWER")

在这里插入图片描述


http://www.ppmy.cn/devtools/86216.html

相关文章

论文《Few-Shot Object Detection with Model Calibration》的解读

《Few-Shot Object Detection with Model Calibration》论文的解读 作者&#xff1a;Qi Fan1, Chi-Keung Tang1 , and Yu-Wing Tai1,2 单位&#xff1a;1 The Hong Kong University of Science and Technology, 2 Kuaishou Technology 邮箱&#xff1a;fanqicsgmail.com, ckta…

OWASP ZAP:一款功能强大的开源Web安全扫描工具

目录 介绍 安装和配置 下载和安装 启动和配置 主界面概述 基本功能 自动扫描 手动测试 被动扫描 主动扫描 高级功能 代理功能 Fuzzer API 插件和扩展 使用场景 开发阶段 测试阶段 生产环境 实践案例 案例一&#xff1a;自动化扫描 案例二&#xff1a;手动…

源/目的检查开启导致虚拟IP背后的LVS无法正常访问

情况描述 近期发现48网段主机无法访问8.83这个VIP&#xff08;虚拟IP&#xff09;&#xff0c;环境是 8.83 绑定了两个LVS实例&#xff0c;然后LVS实例转发到后端的nginx 静态资源&#xff1b;整个流程是&#xff0c;客户端发起对VIP的请求&#xff0c;LVS将请求转发到后端实例…

web基础,http协议,apache概念及nginx

一、web相关概念 Web&#xff0c;全称World Wide Web&#xff0c;通常简称为WWW、Web或万维网&#xff0c;是一个基于超文本和HTTP&#xff08;超文本传输协议&#xff09;的、全球性的、动态交互的、跨平台的分布式图形信息系统。它起源于1989年&#xff0c;由英国科学家蒂姆…

[极客大挑战 2019]PHP1

打开靶机 提示有备份&#xff0c;可以用工具扫描&#xff0c;我还没有配置好环境&#xff0c;搜了一下其他师傅的&#xff1a;备份的地址在这&#xff1a; /www.zip 下载后得到这几个文件&#xff1a; index.php就是上面打开的网页&#xff0c;其中有一段php代码&#xff1a;…

Android APP 音视频(03)CameraX预览与MediaCodec编码

说明&#xff1a; 此CameraX预览和编码实操主要针对Android12.0系统。通过CameraX预览获取yuv格式数据&#xff0c;将yuv格式数据通过mediacodec编码输出H264码流&#xff08;使用ffmpeg播放&#xff09;&#xff0c;存储到sd卡上。 1 CameraX 和 MediaCodec简介 1.1 CameraX…

git拉完代码总是自动创建一个新的节点

git拉完代码&#xff0c;总是自动生成弹出这个信息 然后还会在git上面留下一个节点&#xff0c;这个节点没啥用&#xff0c;显示着感觉有点碍事。 而且后续的git push 之后&#xff0c;会覆盖掉自己的git commit 的提示&#xff0c;其他人cr代码的时候看到的是 解决方法&#…

24年第三届钉钉杯大学生大数据挑战赛浅析

需要完整资料&#xff0c;请关注WX&#xff1a;“小何数模”&#xff01; 本次钉钉杯大数据挑战赛的赛题已正式出炉&#xff0c;无论是赛题难度还是认可度&#xff0c;该比赛都是仅次于数模国赛的独一档&#xff0c;可以用于国赛前的练手训练。考虑到大家解题实属不易&#xf…