hdu 搜尋 dfs 打表
在n*n的方格棋盤放置了n個皇后,使得它們不相互攻擊(即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。
你的任務是,對於給定的n,求出有多少種合法的放置方法。
sample input
185
0
sample output
1
9210
dfs , 求n皇后有多少種方法,只能試探性的在每個位置暴力搜,用乙個一維陣列map[i],表示i行皇后位置,可減少判斷。會超時,所以先打表
注:map[i] = 5 表示第i個皇后在地圖上是(i,5)的位置
dfs(x,m)是總共m個皇后,正在安排第x個皇后的位置
15ms
#include
#define maxn 11
using
namespace std;
int map[maxn]
,a[maxn]
;int cnt,m;
bool
check
(int x,
int y)
return
true;}
void
dfs(
int x,
int m)
for(
int i=
1;i<=m;i++)}
}int
main()
while(~
scanf
("%d"
,&m)
&&m)
return0;
}
HDU 2553 N皇后問題
題目 problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數...
HDU 2553 N皇后問題
復健。一題經典的回溯法,要打表。include define max n 11 int n,res int c max n ans max n void dfs int cur if flag dfs cur 1 int main int m while scanf d m m printf d n...
HDU 2553 N皇后問題
題目資訊 一種非常有用的二進位制優化方法 hdu2553n皇后問題 problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。in...