n皇后問題 HDOJ 2553

2021-07-11 10:35:22 字數 806 閱讀 2827

problem description

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

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

input

共有若干行,每行乙個正整數n≤10,表示棋盤和皇后的數量;如果n=0,表示結束。

output

共有若干行,每行乙個正整數,表示對應輸入行的皇后的不同放置數量。

sample input1

8 50

sample input1

92 0

解析:這個題的思路就是利用深度優先搜尋遍歷所有的皇后位置判斷他們會不會衝突,然後算出不同的皇后有多少種放置方法。首先先打表,算出每種皇后的方法數量,然後輸出這種皇后的數量就好了,詳細見**

#include

using namespace std;

int dp[11];

int n;

int sum;

int abs(int n)  //求絕對值

void dfs(int k)

else

if(icontinue;

dp[x]=y;//dp[x]的值就是第x行中皇后縱座標的值 

dfs(k+1);}}

}int main()

while(cin>>m)

}return 0;}

HDOJ 2553 N皇后問題

n皇后問題 time limit 1000msmemory limit 32768kb64bit io format i64d i64u description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的...

hdoj 2553 n 皇后問題 遞迴

題目詳見 首先找出解空間 給棋盤的行和列都編上1到n的號碼,皇后也給編上1到n的號碼。由於乙個皇后應在不同的行上,為不失一般性,可以假定第i個皇后將放在第i行上的某列。因此n皇后問題的解空間可以用乙個n元組 x1,x2,xn 來表示,其中xi是放置皇后i所在的列號。這意味著所有的解都是n元組 1,2...

HDU 2553 N皇后問題

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