簡單搜尋01 N皇后問題

2021-08-15 07:55:18 字數 731 閱讀 2420

題目大意:

在n*n的方格棋盤放置了n個皇后,使得它們不相互攻擊(即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。

你的任務是,對於給定的n,求出有多少種合法的放置方法。

解題思路:

回溯法。

要先打表,不然tle。

自覺已經精簡到最簡了結果還是tle的痛苦人民得到大佬的提示要先打表,真的想以頭搶地了orz

ac**:

#include #include #include #define n 15

int chess[n], l[n], lists[n];

int sum;

int check(int m)

for (j=1;j<=n;j++)

l[j] = 1;

chess[i] = j;

if (check(i))

l[j] = 0;

}}int main()

while (scanf("%d",&n) && n)

return 0;

}

N皇后問題(搜尋)

problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數量 如...

DFS搜尋 N皇后問題

八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在88格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有76種方案。1854年在柏林的象棋雜誌上不同的作者發表了4...

搜尋與回溯演算法 N皇后問題

在乙個n n n nn n的西洋棋棋盤上放置n n 12 n n 12 n n 1 2 個皇后,使它們不能互相攻擊 即任意兩個皇后不能在同一行 同一列或同一對角線上 試求出第一種 皇后在第i ii行最靠前的情況下,以後各行也盡量靠前 排列方案,和所有方法。輸入乙個數n n 12 n n 12 n n...