C語言 2n皇后問題

2021-09-07 10:22:42 字數 1110 閱讀 8163

基礎練習 2n皇后問題  

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

錦囊1搜尋演算法。

錦囊2先搜尋n皇后的解,在拼湊成2n皇后的解。

問題描述

給定乙個n*n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行、同一列或同一條對角線上,任意的兩個白皇后都不在同一行、同一列或同一條對角線上。問總共有多少種放法?n小於等於8。

輸入格式

輸入的第一行為乙個整數n,表示棋盤的大小。

接下來n行,每行n個0或1的整數,如果乙個整數為1,表示對應的位置可以放皇后,如果乙個整數為0,表示對應的位置不可以放皇后。

輸出格式

輸出乙個整數,表示總共有多少種放法。

樣例輸入

41 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

樣例輸出

2樣例輸入

41 0 1 1

1 1 1 1

1 1 1 1

1 1 1 1

樣例輸出

0

1/*2

測試資料: 34

41 1 1 1

51 1 1 1

61 1 1 1

71 1 1 18*/

9 #include10 #include

11 #include12

int hei[9];//

黑皇后13

int bai[9];//

白皇后14

int chessboard[9][9];//

1:能放 0:不能放

15int count = 0;16

17int check(int queen,int n)

23}

24return

1;

25}

26void white(int line,int

n)else36}

37}38}

39}40int black(int line,int

n)else50}

51}52}

53}54int

main()

2n皇后問題 C

首先讓我們先來看一下八皇后問題 題目描述 乙個如下的 6 6 的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行 每列有且只有乙個,每條對角線 包括兩條主對角線的所有平行線 上至多有乙個棋子。上面的布局可以用序列2 4 6 1 3 5來描述,第 i 個數字表示在第 i 行的相應位置有乙個棋子,如下 行號...

2n皇后問題

問題描述 在n n的矩陣中放入n個白皇后和n個黑皇后,該矩陣由元素 和 組成,代表該位置不能放皇后,代表可以放皇后,n個的皇后兩兩不能在同一行和同一列以及同一對 角線上,n個黑皇后兩兩不能在同一行和同一列以及同一對角線上。求最多有幾種放法?解法 這個問題跟 皇的問題類似,只不過多了另外一種顏色的皇后...

2n皇后問題

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