題目描述:
給定乙個
n∗n 的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入
n 個黑皇后和
n 個白皇后,使任意的兩個黑皇后都不在同一行、同一列或同一條對角
線上,任意的兩個白皇后都不在同一行、同一列或同一條對角線上。問總共有多少種放法?
n 小於等於8 。
輸入格式
輸入的第一行為乙個整數
n ,表示棋盤的大小。
接下來n
行,每行n 個
0 或1 的整數,如果乙個整數為
1, 表示對應的位置可以放皇后,如果乙個整數為
0 ,表示對應的位置不可以放皇后。
輸出格式
輸出乙個整數,表示總共有多少種放法。
樣例輸入1
41 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
樣例輸出1
2樣例輸入2
41 0 1 1
1 1 1 1
1 1 1 1
1 1 1 1
樣例輸出2
0題目分析:八皇后問題的變種,同樣可以採用深度優先搜尋的方法進行處理。
#include using namespace std;
int n,s[9][9],num=0,ans;
bool vis[100][2];
bool hang[100][2];
bool zheng[100][2];
bool fan[100][2];
void dfs(int idx)
for(int i=0;i>n;
ans=0;
for(int i=0;i>s[i][j];}}
dfs(0);
cout
}
計蒜客 2N皇后問題
給定乙個 n n 的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入 n 個黑皇后和 n 個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條斜線 包括正負斜線 上,任意的兩個白皇后都不在同一行 同一列或同一條斜線 包括正負斜線 上。問總共有多少種放法?n 小於等於 8。輸入的第一行為乙個整...
2n皇后問題
問題描述 在n n的矩陣中放入n個白皇后和n個黑皇后,該矩陣由元素 和 組成,代表該位置不能放皇后,代表可以放皇后,n個的皇后兩兩不能在同一行和同一列以及同一對 角線上,n個黑皇后兩兩不能在同一行和同一列以及同一對角線上。求最多有幾種放法?解法 這個問題跟 皇的問題類似,只不過多了另外一種顏色的皇后...
2n皇后問題
問題描述 給定乙個 n n 的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入 n 個黑皇后和 n 個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不 在同一行 同一列或同一條對角線上。問總共有多少種放法?n 小於等於 8。輸入格式 輸入的第一行為乙個整數 n...