n皇后問題

2021-10-02 04:23:34 字數 1421 閱讀 2483

洛谷n皇后例題

(不是只針對題目而整理的**,下面的**可能過不了上面洛谷的題目)

其實寫這篇部落格只要還是加深一下自己對於dfs的印象和理解,也方便以後自己回顧

題目描述:乙個如下的 6×6 的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行、每列有且只有乙個,每條對角線(包括兩條主對角線的所有平行線)上至多有乙個棋子。

上面的布局可以用序列2 4 6 1 3 5來描述,第 i 個數字表示在第 i 行的相應位置有乙個棋子,如下:

行號1 2 3 4 5 6

列號2 4 6 1 3 5

這只是棋子放置的乙個解。請編乙個程式找出所有棋子放置的解。

並把它們以上面的序列方法輸出,解按字典順序排列。

請輸出前 3 個解。最後一行是解的總個數。

輸入:

一行乙個正整數 n,表示棋盤是n×n大小的。

輸出:

前三行為前三個解,每個解的兩個數字之間用乙個空格隔開。第四行只有乙個數字,表示解的總數。

**一:

#include

#include

using

namespace std;

int n;

//定義棋盤的大小

int s[15]

;//儲存皇后棋子的位置,s[i]代表第i個皇后在第i行的第s[i]列上

int j,k;

//控制迴圈

int sum;

//儲存解的個數

intjudge

(int t)

void

prepare

(int t)

}else}}

intmain()

**二:

#include

using

namespace std;

int s[5]

[100];

int ans[20]

;//儲存皇后的位置

int sum;

//儲存解的個數

int n;

//定義棋盤的大小

intprepare

(int t)

}else}}

}int

main()

N皇后問題

include define maxqueens 20 define minqueens 4 enum bool typedef struct queendata queendata queendata queens maxqueens 1 int ncount init int init chec...

N皇后問題

採用遞迴回溯法 執行結果 輸入8 對於n皇后解的個數,參考 當n 16時,構造法給出解,參考poj 3239 一 當n mod 6 2 且 n mod 6 3時,有乙個解為 2,4,6,8,n,1,3,5,7,n 1 n為偶數 2,4,6,8,n 1,1,3,5,7,n n為奇數 上面序列第i個數為...

N皇后問題

問題 題目 於西洋棋的玩法,因為皇后所在的位置可以縱向 橫向 兩個斜向四個方向的 捕捉 所以8皇后問題就是要求如何布置8個皇后在8 8的棋盤上而使他們互相無法 捕捉 也就是說不存在兩個皇后同行或同列,或在同一斜線上。而n皇后問題就是如何布置n個皇后在n n棋盤裡使不存在兩個皇后在同行同列和同一斜線上...