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

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

输入格式

共一行,包含整数 nn。

输出格式

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

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

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

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

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

数据范围

1≤n≤91≤n≤9

输入样例:

4

输出样例:

.Q..
...Q
Q...
..Q...Q.
Q...
...Q
.Q..

思路分析:回溯法

#include<bits/stdc++.h>
using namespace std;
int n;
int mp[15][15];
int dx[]= {-1,1,0,0,-1,1,-1,1};
int dy[]= {0,0,-1,1,-1,-1,1,1};
bool check(int x,int y,int op)
{if(x<0||x>=n||y<0||y>=n)return true;if(mp[x][y]==1)return false;return check(x+dx[op],y+dy[op],op);
}
bool fun(int x,int y)
{bool flag  = true;for(int i =0; i<8; i++){int xx = x+dx[i];int yy = y+dy[i];flag = check(xx,yy,i);if(flag == false)return false;}return true;
}
void dfs(int x,int y,int num)
{if(num==n){for(int i = 0; i<n; i++){for(int j = 0; j<n; j++){if(mp[i][j]==1)cout<<"Q";elsecout<<".";}cout<<endl;}cout<<endl;return ;}for(int i = 0; i<n; i++){if(fun(x,i)){mp[x][i]=1;dfs(x+1,i,num+1);mp[x][i]=0;}}
}
int main()
{cin>>n;dfs(0,0,0);return 0;
}

ACWing n-皇后问题相关推荐

  1. N皇后问题——Acwing

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

  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 898. 数字三角形 AcWing 1015. 摘花生 AcWing 1018. 最低通行费 AcWing 1027. 方格取数 AcWing 275. 传纸条 最 ...

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

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

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

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

  7. AcWing算法基础班笔记

    快速排序 思想:分治 确定分界点:q[l],q[(l+r)/2],q[r],随机 调整范围 :使得第一个区间的值都小于等于x,第二个区间的值都大于等于x(重点) 递归处理左右两端 做法 #includ ...

  8. 算法与数据结构模版(AcWing算法基础课笔记,持续更新中)

    AcWing算法基础课笔记 文章目录 AcWing算法基础课笔记 第一章 基础算法 1. 排序 快速排序: 归并排序: 2. 二分 整数二分 浮点数二分 3. 高精度 高精度加法 高精度减法 高精度乘 ...

  9. 【算法模板】dfs 八皇后问题

    1.前言 本文将以经典的八皇后问题来解析dfs的主要思想. 2.题目 题目出处:活动 - AcWing 3.思路讲解 dfs的思想暗含树的历遍,主要步骤为: 判断是否搜索完毕---历遍寻找符合条件的元 ...

  10. acwing算法基础课模版分析

    文章目录 前言: 一.基础算法 1. 快排模版 2. 归并排序 3. 整数二分算法 4. 浮点数二分算法 5. 一维前缀和数组 6. 二维前缀和数组 7. 一维差分数组 8. 二维差分数组 9. 位运 ...

最新文章

  1. linux shell 编码规范
  2. 为sort函数指定排序规则时注意的问题以及错误的写法
  3. PHP 分页类 高洛峰 细说PHP
  4. promise使用promise进行封装授权登录接口
  5. httprequest存储的是字符内容 而文本内容是以字节形式上传的;所以普通的取值方式无法从httprequest取到值...
  6. 【图像处理】【去模糊】图像去模糊的原理
  7. 【缺陷识别】基于matlab GUI SVM金属表面缺陷分类与测量(带面板)【含Matlab源码 1652期】
  8. Unity3D物理渲染算法研究【PBR】
  9. retrofit应用详解与源码解析--源码解析
  10. AndroidX App Startup 介绍及使用
  11. 微信小程序开发——最新网络流行语(前言)
  12. ROS入门(十)——两只小乌龟(乌龟跟随C++实现)
  13. PERCENT_RANK 函数
  14. echarts中在地图上显示label时的阴影问题
  15. Atmel 官方网站中文版
  16. 斯坦福cs224n教程--- 学习笔记1
  17. 条码打印软件制作数字+字母的流水号二维码
  18. 解读数据处理白皮书、共话核心软件创新,软博会又一主题论坛拉开帷幕!
  19. 脑洞大开的思维工具:六顶思考帽
  20. 九校联考-长沙市一中NOIP模拟Day1T3 优美序列(sequence)

热门文章

  1. 安装pod遇到这种错误ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xco
  2. m4a怎么转换成mp3
  3. PDF时间戳数字签名
  4. css font html里写,HTML,CSS,font
  5. 关于uni-app中SegmentedControl 分段器不显示的问题
  6. DP83848 跑10M能行,跑100M不行 的原因
  7. 蓝桥杯:解救小哈最短路径
  8. 华为硬件工程师等公司的面试经历分享
  9. redis当中各种数据类型的操作
  10. 什么是BASE最终一致性