HDOJ 2553 N皇后問題

2021-07-15 20:15:11 字數 886 閱讀 5061

n皇后問題

time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u

description

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

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

input

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

output

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

sample input

185

0

sample output

1

9210

給出的乙個值n即代表棋盤的大小,又表示皇后的數量。。讀題不細心,這麼乙個簡單的問題也迷惑了半天。。。

既然行數,列數,皇后的個數都相等,那麼用乙個一維陣列就可以表示相應的棋盤啦!陣列的下標表示行,對應的值表示列!且第x個皇后就只能放在第x行!

還有一點:需要打表!!測試資料有多組,到0才結束,所以要將十種情況例舉出來,避免超時!

#includeint map[15],a[15],x,n,num;

void dfs(int x)

}if(sign)//如果不衝突,該假設成立,進行下乙個皇后的判斷

dfs(x+1);

} }}void bow()

}int main()

hdoj 2553 n 皇后問題 遞迴

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

n皇后問題 HDOJ 2553

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

HDU 2553 N皇后問題

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