题目描述
n−皇后问题是指将 n 个皇后放在 n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。
现在给定整数 n,请你输出所有的满足条件的棋子摆法。
输入格式
共一行,包含整数 n。
输出格式
每个解决方案占 n 行,每行输出一个长度为 n 的字符串,用来表示完整的棋盘状态。
其中 . 表示某一个位置的方格状态为空,Q 表示某一个位置的方格上摆着皇后。
每个方案输出完成后,输出一个空行。
注意:行末不能有多余空格。
输出方案的顺序任意,只要不重复且没有遗漏即可。
数据范围
1≤n≤9
输入样例:
4
输出样例:
.Q…
…Q
Q…
…Q.

…Q.
Q…
…Q
.Q…
题解代码如下

#include<bits/stdc++.h>
using namespace std;
const int N = 20;int n;
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;}for(int i=0;i<n;i++){if(!col[i] && !dg[u+i] && !udg[i-u+n]){g[u][i] = 'Q';col[i] = dg[u+i] = udg[i-u+n] = true;dfs(u+1);col[i] = dg[u+i] = udg[i-u+n] = false;g[u][i] = '.';}}
}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;
}

acwing-843.n-皇后问题相关推荐

  1. 【算法基础】DFS深度优先算法 —— AcWing 843. n-皇后问题 AcWing 842. 排列数字

    目录

  2. AcWing基础算法课Level-2 第三讲 搜索与图论

    AcWing基础算法课Level-2 第三讲 搜索与图论 DFS AcWing 842. 排列数字3379人打卡 AcWing 843. n-皇后问题3071人打卡 BFS AcWing 844. 走 ...

  3. 【AcWing 学习】图论与搜索

    图论与搜索 搜索与图论 深度优先搜索 DFS 排列数字 N 皇后 宽度优先搜索 BFS 走迷宫 树和图的存储 树和图的深度优先遍历 树的重心 树和图的宽度优先遍历 图中点的层次 拓扑排序 有向图的拓扑 ...

  4. Acwing算法基础课学习笔记

    Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...

  5. 算法基础课【合集1】

    文章目录 基础算法 785. 快速排序 786. 第k个数 787. 归并排序 788. 逆序对的数量 789. 数的范围 790. 数的三次方根 791. 高精度加法 792. 高精度减法 793. ...

  6. 深度优先搜索和宽度优先搜索

    深度优先搜索和宽度优先搜索 bfs和dfs都是遍历图的方法.dfs是不撞南墙不回头,bfs慢慢来,一层一层来. 类型 空间(h为高度) 时间(h为高度) 采用的数据结构 特点 DFS O(h) O( ...

  7. N皇后问题——Acwing

    N 皇后问题是指将 N 个皇后放置在 N×N 棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行.同一列或同一斜线上. 在本题中,你无需解决这一难题. 你需要做的是判断我们给出的棋子摆放是 ...

  8. AcWing 841. 字符串哈希(字符串Hash)

    题目连接 https://www.acwing.com/problem/content/843/ 思路 我们用一个数组a记录改字符串的前缀hash值,然后和前缀和类似的方法,不过注意的是,我们在计算区 ...

  9. Acwing算法—动态规划

    目录 数字三角形模型 AcWing 898. 数字三角形 AcWing 1015. 摘花生 AcWing 1018. 最低通行费 AcWing 1027. 方格取数 AcWing 275. 传纸条 最 ...

  10. [AcWing算法刷题]之DFS+BFS迷宫模板(简单)

    题目来源: 题库 - AcWing 目录 DFS和BFS模板题目:迷宫类 机器人的运动范围​ 字母 迷宫 红与黑 棋盘问题 马走日 全球变暖 DFS综合类 乘积最大(提高课) 单词接龙(提高课) 取石 ...

最新文章

  1. Python 2.7 将于7个月后终结,这是你需要了解的3.X炫酷新特性
  2. spark学习-57-Spark下Scala版HBase下的根据权重获取最真实数据
  3. selenium之 chromedriver与chrome版本映射表(更新至v2.43)
  4. 学习mysql随笔——mysql的安装启动
  5. 一张思维导图,让正则表达式不再难懂
  6. [转载]Qt之中文显示(QMessageBox、QLineEdit右键菜单等)
  7. Redis实战(十三)Redis的三种集群方式
  8. 【ACL2021】具有可解释的、鲁棒的、并具有泛化能力的三篇问答系统相关论文
  9. 正则表达式最后的/i是不区分大小写的意思
  10. DLL文件反编译(附:工具下载链接)
  11. 说说知名软件的伪装和防范(下)
  12. 搭建 Spring Cloud Alibaba 微服务框架
  13. cpu_relax()函数的意义
  14. 【渝粤教育】 国家开放大学2020年春季 1332中文学科论文写作 参考试题
  15. 75道逻辑思维题及答案
  16. vue中下载图片到本地
  17. OpenCV中图像特征提取与描述
  18. 二本本科,银行外包开发工作 4 个月有余。聊聊外包公司工作的一些真实感受!...
  19. Unity牧师与魔鬼小游戏(动作分离版)
  20. 5个免费的项目管理工具7款最流行的在线项目管理工具

热门文章

  1. 在iOS或Android中集成Caffe2
  2. Linux 路由表详解及 route 命令详解
  3. 【编译原理学习笔记】2:文法与语言描述,二义性,正规文法,左/右句型,句型分析
  4. 【C/C++】某地刑警大队对A、B、C、D、E和F共6个嫌疑人进行作案与否的排查,存在如下6条线索:
  5. 珍爱生命,远离dota
  6. html打印当前页面的函数,js调用iframe实现打印页面内容的方法
  7. MCU-51:单片机蜂鸣器播放孤勇者
  8. Java8新特性Stream流详解
  9. 双系统设置成默认启动Windows的问题
  10. 初学者JAVA99乘法表