OpenJudge 百練2754 八皇后

2022-08-16 03:03:19 字數 1134 閱讀 4155

description

會下西洋棋的人都很清楚:皇后可以在橫、豎、斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上(有8 * 8個方格),使它們誰也不能被吃掉!這就是著名的八皇后問題。 

對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a=b1b2...b8,其中bi為相應擺法中第i行皇后所處的列數。已經知道8皇后問題一共有92組解(即92個不同的皇后串)。

給出乙個數b,要求輸出第b個串。串的比較是這樣的:皇后串x置於皇后串y之前,當且僅當將x視為整數時比y小。

input

第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括乙個正整數b(1 <= b <= 92)

output

輸出有n行,每行輸出對應乙個輸入。輸出應是乙個正整數,是對應於b的皇后串。

sample input

2

192

sample output

15863724

84136275

題解:回溯法的應用。注意判斷對角線之前是否存在皇后的方法。

**:

1 #include2 #include

3 #include4

5int

i,j,n,m,num,

6 a[10],b[100][10];7

8bool f[3][50];9

10int

11pre()

1219

20void

21 dfs(int

x)22

3031

for(i=1;i<=8;i++)

32if (f[0][i]&&f[1][x+i]&&f[2][x-i+8

])3339}

4041

int42

main()

4355

return0;

56 }

百練 2754 八皇后

總時間限制 1000ms 記憶體限制 65536kb 描述 會下西洋棋的人都很清楚 皇后可以在橫 豎 斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上 有8 8個方格 使它們誰也不能被吃掉!這就是著名的八皇后問題。對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a b 1b 2...

百練2754 八皇后

總時間限制 1000ms 記憶體限制 65536kb 描述 會下西洋棋的人都很清楚 皇后可以在橫 豎 斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上 有8 8個方格 使它們誰也不能被吃掉!這就是著名的八皇后問題。對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即a b 1b2....

百練 2754 八皇后 (DFS)

2754 八皇后 總時間限制 1000ms 記憶體限制 65536kb 描述會下西洋棋的人都很清楚 皇后可以在橫 豎 斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上 有8 8個方格 使它們誰也不能被吃掉!這就是著名的八皇后問題。對於某個滿足要求的8皇后的擺放方法,定義乙個皇后串a與之對應,即...