基礎練習 2n皇后問題

2021-10-22 07:29:04 字數 1800 閱讀 6853

資源限制

時間限制:1.0s 記憶體限制:512.0mb

問題描述:

給定乙個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

樣例輸出:

樣例輸入:

4

1 0 1 1

1 1 1 1

1 1 1 1

1 1 1 1

樣例輸出:

下面是我的**:

#include

using

namespace std;

int num;

int arr[

105]

[105];

int bqueen[

105]

;int wqueen[

105]

;int count =0;

intblackqueen

(int col)}if

(col == num)

for(

int i =

0; i < num; i++)}

}int

whitequeen

(int col)}if

(col == num)

for(

int i =

0; i < num; i++)}

}int

main()

}whitequeen(0

);cout << count << endl;

return0;

}

如果對上面有些不懂得可以看哈n皇后問題

#include

#include

using

namespace std;

int queen[

10005];

int count =0;

bool

islegal

(int row,

int col)

int rowdiff =

abs(row - r)

;int coldiff =

abs(col - j);if

(rowdiff == coldiff)

// 在對角線上

}// endfor

return

true;}

void

nqueen

(int col,

int n)

else}}

}int

main()

基礎練習 2n皇后問題 dfs

問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙個整數n,表示棋盤的大小。接...

試題 基礎練習 2n皇后問題

提交此題 評測記錄 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多...

2021 3 5 基礎練習 2n皇后問題

練習時間 2020 3 6 題目名稱 基礎練習 2n皇后問題 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在...