ACWing n-皇后问题
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-皇后问题相关推荐
- N皇后问题——Acwing
N 皇后问题是指将 N 个皇后放置在 N×N 棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行.同一列或同一斜线上. 在本题中,你无需解决这一难题. 你需要做的是判断我们给出的棋子摆放是 ...
- AcWing基础算法课Level-2 第三讲 搜索与图论
AcWing基础算法课Level-2 第三讲 搜索与图论 DFS AcWing 842. 排列数字3379人打卡 AcWing 843. n-皇后问题3071人打卡 BFS AcWing 844. 走 ...
- 【AcWing 学习】图论与搜索
图论与搜索 搜索与图论 深度优先搜索 DFS 排列数字 N 皇后 宽度优先搜索 BFS 走迷宫 树和图的存储 树和图的深度优先遍历 树的重心 树和图的宽度优先遍历 图中点的层次 拓扑排序 有向图的拓扑 ...
- Acwing算法—动态规划
目录 数字三角形模型 AcWing 898. 数字三角形 AcWing 1015. 摘花生 AcWing 1018. 最低通行费 AcWing 1027. 方格取数 AcWing 275. 传纸条 最 ...
- Acwing算法基础课学习笔记
Acwing学习笔记 第一章 基础算法 快速排序 归并排序 二分查找 前缀和与差分 差分 位运算 离散化 第二章 数据结构 单链表 双链表 栈 队列 单调栈 单调队列 KMP算法 Trie 并查集 堆 ...
- [AcWing算法刷题]之DFS+BFS迷宫模板(简单)
题目来源: 题库 - AcWing 目录 DFS和BFS模板题目:迷宫类 机器人的运动范围 字母 迷宫 红与黑 棋盘问题 马走日 全球变暖 DFS综合类 乘积最大(提高课) 单词接龙(提高课) 取石 ...
- AcWing算法基础班笔记
快速排序 思想:分治 确定分界点:q[l],q[(l+r)/2],q[r],随机 调整范围 :使得第一个区间的值都小于等于x,第二个区间的值都大于等于x(重点) 递归处理左右两端 做法 #includ ...
- 算法与数据结构模版(AcWing算法基础课笔记,持续更新中)
AcWing算法基础课笔记 文章目录 AcWing算法基础课笔记 第一章 基础算法 1. 排序 快速排序: 归并排序: 2. 二分 整数二分 浮点数二分 3. 高精度 高精度加法 高精度减法 高精度乘 ...
- 【算法模板】dfs 八皇后问题
1.前言 本文将以经典的八皇后问题来解析dfs的主要思想. 2.题目 题目出处:活动 - AcWing 3.思路讲解 dfs的思想暗含树的历遍,主要步骤为: 判断是否搜索完毕---历遍寻找符合条件的元 ...
- acwing算法基础课模版分析
文章目录 前言: 一.基础算法 1. 快排模版 2. 归并排序 3. 整数二分算法 4. 浮点数二分算法 5. 一维前缀和数组 6. 二维前缀和数组 7. 一维差分数组 8. 二维差分数组 9. 位运 ...
最新文章
- linux shell 编码规范
- 为sort函数指定排序规则时注意的问题以及错误的写法
- PHP 分页类 高洛峰 细说PHP
- promise使用promise进行封装授权登录接口
- httprequest存储的是字符内容 而文本内容是以字节形式上传的;所以普通的取值方式无法从httprequest取到值...
- 【图像处理】【去模糊】图像去模糊的原理
- 【缺陷识别】基于matlab GUI SVM金属表面缺陷分类与测量(带面板)【含Matlab源码 1652期】
- Unity3D物理渲染算法研究【PBR】
- retrofit应用详解与源码解析--源码解析
- AndroidX App Startup 介绍及使用
- 微信小程序开发——最新网络流行语(前言)
- ROS入门(十)——两只小乌龟(乌龟跟随C++实现)
- PERCENT_RANK 函数
- echarts中在地图上显示label时的阴影问题
- Atmel 官方网站中文版
- 斯坦福cs224n教程--- 学习笔记1
- 条码打印软件制作数字+字母的流水号二维码
- 解读数据处理白皮书、共话核心软件创新,软博会又一主题论坛拉开帷幕!
- 脑洞大开的思维工具:六顶思考帽
- 九校联考-长沙市一中NOIP模拟Day1T3 优美序列(sequence)
热门文章
- 安装pod遇到这种错误ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xco
- m4a怎么转换成mp3
- PDF时间戳数字签名
- css font html里写,HTML,CSS,font
- 关于uni-app中SegmentedControl 分段器不显示的问题
- DP83848 跑10M能行,跑100M不行 的原因
- 蓝桥杯:解救小哈最短路径
- 华为硬件工程师等公司的面试经历分享
- redis当中各种数据类型的操作
- 什么是BASE最终一致性