N皇后问题

2023-11-08

久闻N皇后问题在算法界的赫赫大名,今天晚上有空我也来试一下。(ps.至于我的作业,哈哈哈……请读者自行领悟)

一、问题描述:
在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。

输入:
给定棋盘的大小n (n ≤ 13)
输出:
输出有多少种放置方法。

思路:循环遍历`

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int N;
int queenPos[100];
void NQueen( int k);
int main()
{
    cin >> N;
    NQueen(0);
    return 0;
}
void NQueen(int k){ //在0~(k-1)行皇后已经摆好的情况下,摆第k行及其后的皇后 
    int i;
    if( k == N){ //N个皇后已经摆好,输出N个皇后的位置 
        for( i = 0;i < N;i ++)
            cout << queenPos[i] + 1 << " ";
        cout << endl;
        return ;
    }
    for( i = 0;i < N;i ++){ //尝试第K个皇后的位置 
        int j;
        for( j = 0;j < k;j ++){//和已经摆好的k个皇后的位置比较,看是否冲突 
            if (queenPos[j] == i ||
                    abs(queenPos[j]-i) == abs(k-j)){
                break;//冲突,测试下一个位置(跳出内层循环) 
            }
        }
            if( j == k){
                    queenPos[k] = i;
                    NQueen(k+1);
            }


        }//for( i = 0;i < N;i ++)
}

不多说了,作业君还等着我呢!喵喵喵~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

N皇后问题 的相关文章

  • 新版-C语言学生信息管理系统

    拥有基本的学生信息系统的功能 功能点如下所示 1 添加学生信息 2 修改学生信息 3 删除学生信息 4 查看学生信息 5 搜索学生信息 6 查看系统学生总人数 7 学生信息排序 8 保存学生信息 保存在D students txt 9 导入

随机推荐

  • C++ string类型的字符串长度获取的三种方法

    1 用string的成员方法length 获取字符串长度 length 比较直观 表示的就是该字符串的长度 cpp
  • 【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

    本周的工作结束 详述一些在项目代码中实际遇到的一些坑 代码中遇到这样一个场景 有个业务接口 接口返回的值是一个JSON格式的字符串 通过JSON解析的方式 解析为格式为 Map
  • 在STM32CubeIDE中使用IAR编译器

    在STM32CubeIDE中使用IAR编译器 一 前言 IAR编译器的大名早有耳闻 但本人一直未深度使用 主要有以下三点原因 首先 它收费 因此笔者更倾向于使用免费的GCC工具链 其次 作为嵌入式开发来说 IAR封装了太多底层细节 要深入了
  • Android开发学习笔记:Service的简介和启动方式

    一 Service的简介 1 Service 介绍和作用 Service是Android系统中的四大组件之一 它是一种长生命周期的 没有可视化界面 运行于后台的一种服务程序 比如我们播放音乐的时候 有可能想边听音乐边干些其他事情 当退出播放
  • 什么是实体-联系图(ER图)

    实体 联系图 ER图 数据模型中包含3种相互关联的信息 数据对象 数据对象的属性及数据对象彼此间相互连接的关系 1 数据对象 数据对象是对软件必须理解的复合信息的抽象 所谓符合信息是指具有一系列不同性质或属性的事物 仅有单个值得事物 例如
  • 安天逆向教程——常用汇编语句

    一 汇编基础 二 条件分支 反汇编时更多关注这些条件分支 如果看懂这些条件分支 会对程序的大体逻辑有一个整体的了解 至于程序里面的细节 有时会省略掉 往往关键的跳转理解了甚至进行一点点的改动 就会使得程序发生翻天覆地的变化 三 栈和函数调用
  • PO模式-unittest

    PO模式是指将页面元素的定位以及元素的操作分离出来 测试用例脚本直接调用这些封装好的元素操作来组织测试用例 从而实现了测试用例脚本和元素定位 操作的分离 本文采用PO模式和unittest框架 对readmine系统执行了两条测试用例 文件
  • MATLAB三维绘图基础meshgrid函数的用法解析

    MATLAB三维绘图基础meshgrid函数的用法解析 MATLAB中meshgrid函数是用来生成网格的 函数用法是 X Y meshgrid x y 这种是最常用的一种用法 x和y分别是两个向量 使用示例 结果 A中的每个点对应的是x轴
  • STM32学习--中断

    这里写目录标题 什么是中断 中断的作用 中断的特点 STM32与中断 NVIC 中断通道 中断优先级 中断服务函数 SysTick中断 内核中断 SysTick中断函数 NVIC库函数 NVIC初始化函数 抢断优先级分组 USART使能中断
  • 博客是个好东西

    到底有么有必要写blog 从热情到荒废 最近几年老觉得个人写blog是个费时费力的事情 所以荒废了好长时间没有写blog了 加之CSDN那几年不思进取 博客搞得一塌糊涂 维护起来麻烦的很 所以更是转到博客园去了 但是 但是 随着工作的事情越
  • C# webBrowser

    webBrowser功能 10 屏蔽脚本错误 将WebBrowser控件ScriptErrorsSuppressed设置为True即可 webBrowser1 ScriptErrorsSuppressed true HtmlElementC
  • ubuntu制作开机自启动service

    我们在使用java时 常常需要把jar包设置为开机自启动 保证机器在断电重启后仍然能正常的执行jar提供的服务 在部署再ubuntu系统中的操作过程如下 1 上传jar到指定的路径下 如上传到 home test jarTest test
  • Markdown操作——代码块内如何添加代码块+如何引用代码块符号

    目录 例子 尝试 用途 例子 以引用Markdown的数学公式为例 预览 E mc 2 这是个数学公式 但是想打出源代码 比如说想介绍一下这个代码的使用 的时候却不知道该怎么操作了 其实有的人想到了 直接在外面再加上 那就可以了吧 备注 c
  • Mysql实战详解15:mysql错误Please use SHOW DDL to check it, and then recover or rollback it

    4644 129f3d45d0265000 100 64 106 105 3306 common counter ERR CODE TDDL 4644 ERR PENDING DDL JOB EXISTS Another DDL job 1
  • 重磅!中国网络空间安全协会发布《2020年中国网络安全产业统计报告》

    6月29日 中国网络空间安全协会 以下简称 协会 发布了 2020年中国网络安全产业统计报告 以下简称 报告 共有4000余人出席线上发布会 报告 对国内绝大多数具备网络安全技术和产品自有研发能力的网络安全企业进行了梳理 统计和分析 力图全
  • ASP.NET页面之间传值的五种常用方法

    1 使用QueryString变量 QueryString是一种非常简单的传值方式 他可以将传送的值显示在浏览器的地址栏中 如果是传递一个或多个安全性要求不高或是结构简单的数值时 可以使用这个方法 但是对于传递数组或对象的话 就不能用这个方
  • Linux下GDB中的 attach pid 如何使用?

    linux下使用gdb可以很好的跟踪代码 当然 让我觉得神奇的是它竟然能跟踪正在运行的进程 下面 我将用我的例子演示一下怎么使用的 第一步 获得正在运行的进程的进程号 ps ef grep lt 进程名 gt 我的就是 找到该进程的进程id
  • O(nlogn)在数组S中找存在相加可得到x的算法

    题目 设计一个运行时间为O nlogn 算法 给定n个整数的集合S和另一个整数x 该算法能确定S中是否存在两个和相加刚好为x 的元素 思想 O nlogn O n O nlogn O nlogn 就是快排的时间复杂度 O n 就是查找的时间
  • 因果推断学习笔记(一)

    在日常生活中 我们常常会用到因果推断 比如 你淋雨了 赶紧去洗澡 不然容易着凉 感冒 这里我们认为淋雨是感冒的因 通过原因 来推断可能得结果 我拉肚子了 可能是昨天海鲜吃多了 这里我们认为海鲜吃多了是拉肚子的因 并且通过拉肚子反推可能得原因
  • N皇后问题

    久闻N皇后问题在算法界的赫赫大名 今天晚上有空我也来试一下 ps 至于我的作业 哈哈哈 请读者自行领悟 一 问题描述 在n n格的棋盘上放置彼此不受攻击的n个皇后 按照国际象棋的规则 皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子 n