一、题目回顾
在 N×N 的方格棋盘放置了 N 个皇后,使得它们不相互攻击(即任意 2 个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成 45 角的斜线上。你的任务是,对于给定的 N,求出有多少种合法的放置方法。
输入描述
输入中有一个正整数 N≤10,表示棋盘和皇后的数量
输出描述
为一个正整数,表示对应输入行的皇后的不同放置数量。
输入:
5
输出:
10
运行限制
最大运行时间:1s
最大运行内存: 128M
下图有个简单的分析过程(图片来自网络)
二、题目分析
- 输入: 整数n,表示N皇后问题中的N。
- 输出: 所有合法的放置方式的数量。
- 限制条件: 皇后不得在同一行、同一列或同一对角线上。
- 回溯算法: 使用回溯算法递归地尝试将皇后放置在每一行的不同列上,然后检查是否满足限制条件。如果满足,则继续递归放置下一个皇后,直到所有皇后都放置完毕,然后增加解的计数器。
- 检查限制条件: 在每次放置皇后时,需要检查当前位置是否满足限制条件,即不