杭電2553N皇后問題 dfs

2021-07-15 19:34:09 字數 2450 閱讀 1043

n皇后問題

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

submit

status

description

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

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

input

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

output

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

sample input

185

0

sample output

1

9210

#include

#include

#include

using namespace std;

int dp[12];

bool vis[3][50];

int sum=0;

void dfs(int row,int n)

}

}

}

int main()

while(scanf("%d",&n),n)

printf("%d\n",dp[n]);

return 0;

}

思路:用一維陣列hang[num] = i,num表示第num行,i表示第i列,計算n = 1~10皇后的不同放置數量,然後打表?

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

#include

#include

inthang[11],n,sum;

intans[11];

booljudge(intnum)

voiddfs(intnum)

}

}

intmain()

while(scanf("%d",&m) && m)

printf("%d\n",ans[m]);

return0;

}

杭電 2553 N皇后問題 (dfs)

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

HDU2553 N皇后問題(DFS)

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

HDU2553 N皇后問題(dfs)

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