题目描述
给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。
输入
输入的第一行为一个整数n,表示棋盘的大小。
接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。输出
输出一个整数,表示总共有多少种放法。
样例输入
4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1样例输出
2
原题链接:[蓝桥杯][基础练习VIP]2n皇后问题
在我们学习2n皇后问题前,需要了解回溯法的一个经典题型:八皇后问题
一、首先贴上八皇后问题:
给定一个8*8的棋盘。现在要向棋盘中放入8个皇后使任意的两个皇后都不在同一行、同一列或同一条对角线上问总共有多少种放法?
我们需要明确:
- 1、会有八个皇后被放入
- 2、每一行放一个(也仅有一个)
- 3、每一列也会有一个(也仅有一个)
- 4、如果用全排列或者八个