洛谷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棋盤裡使不存在兩個皇后在同行同列和同一斜線上...