HDU 2553 N皇后問題

2021-09-01 04:28:12 字數 861 閱讀 1651

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...