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
1850
sample output
19210
給出的乙個值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,表示棋盤和皇后的數...