首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
N皇后问题
10条解析
开通博客写题解
在刷题的单身狗很开心
发表于 2023-09-20 08:54:46
深度优先遍历加剪枝的经典问题。在递归过程中按行去递归保证了不在同一行,然后使用结构体数组来保存前面行已选定的坐标,在每一行都循环的去选择是哪一列。然后判断和之前的是否在同一列或同一对角线。如果递归到N次了,那么就证明可以有一个方案了。 如何判断在同一对角线:abs(y-y`)==abs(x-x
展开全文
HFreedom
发表于 2022-07-29 15:46:36
题目描述 给出一个n*n的国际象棋棋盘,你需要在棋盘中摆放n个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同一行、同一列,或者同一对角线。请问共有多少种摆放方式满足条件。 输入描述 一行,一个整数n(1≤n≤12),表示棋盘的大小。 输出描述 输出一行一个整数,表示总共有多
展开全文
2022115828
发表于 2023-06-24 20:25:58
思路:按照行来dfs,同时使用col,dg,udg三个数组来记录列,对角线和反对角线是否有棋子。 当我们的u,也就是棋子数等于n的时候,就是我们把棋子安放完成,返回即可。 这里我们的u也同时是行数,这里i则可以理解为列数,从0到n-1列,也就是n列。 我们可以发现一个规律,一条对角线上面的x,y坐标
展开全文
等我沉淀一下
发表于 2023-03-15 20:09:58
家人们看图吧 选错编辑器了 include<bits/stdc++.h> using namespace std; int n; int lie[15];//判断列 int zuo[30];//开的至少得是2n+1个(至少有2n+1个斜线 具体看下文),可多开几个不必精确计算 int y
展开全文
默默然诶
发表于 2022-07-11 19:51:41
#include<iostream> using namespace std; int n; int a[14]; int lie[14], zd[30], fd[30]; int ans = 0; void dfs(int dep) { if (dep > n) { a
展开全文
asdasdasdasdas
发表于 2024-03-30 14:03:57
dfs问题 1、把棋盘看作一个g[n][n]数组,我们一行一行的放,例如我们第一个肯定放g[1][1]这里,然后看下一行,下一行放哪呢?这就需要判断,从题目得知要满足三个条件(因为一行一行放所以行不重复这一条不用考虑,减去): 1.1:同一列不能有重复 --------- 1.2:同一对角
展开全文
牛牛冲_冲_冲_
发表于 2022-07-16 07:23:33
欢迎互关,题解本蒟蒻持续发布 #include<bits/stdc++.h> using namespace std; const int N=20; int cnt=0,n **b代表竖直方向的某一列是否被标记,lf和rg是left和right的简写,分别表示左斜方向和右 斜方向是否
展开全文
Rain_Fly
发表于 2024-03-13 22:19:14
题目描述 给出一个n×nn\times nn×n的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同一行、同一列,或者同一对角线。请问共有多少种摆放方式满足条件。 输入描述: 一行,一个整数n,表示棋盘的大
展开全文
2004
发表于 2025-04-18 00:32:01
利用dfs+回溯:因为没行只能放一个所以可以不用对行(dep)进行标记,j遍历列副对角线:dep+j;主对角线:dep+n-j。 #include<iostream> #include<vector> using namespace std; const int N=12;
展开全文
yhyh_2
发表于 2024-09-20 00:53:31
#include<iostream> #include<cstring> #include<algorithm> #include<cmath> using namespace std; const int N = 20; struct node
展开全文
查看本题
查看本题讨论
相关比赛
32312-算法基础精选题单补充题目
进入比赛
37293-ACM-暑假第二次集训
进入比赛
37793-2022-2023暑期集训(第四场)
进入比赛
40419-【校队+实验班】萌新训练赛【2】
进入比赛
44065-2022-21级第三次算法训练
进入比赛
等你来战
查看全部
新疆大学2025年7月月赛(同步赛)
报名截止时间:2025-07-06 18:00
牛客周赛 Round 99
报名截止时间:2025-07-06 21:00
牛客练习赛142
报名截止时间:2025-07-11 21:30
2025年第一届上海师范大学程序设计竞赛(同步赛)
报名截止时间:2025-07-13 18:00
牛客周赛 Round 100
报名截止时间:2025-07-13 21:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题