Type: Default 1000ms 512MiB

八皇后

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。

如何将 8 个皇后放在棋盘上(有 8×88\times8 个方格),使它们谁也不能被吃掉。

这就是著名的八皇后问题。

对于某个满足要求的 8 皇后的摆放方法,定义一个皇后串 aa 与之对应,即 a=b1b2b8a=b_1 b_2 \cdots b_8,其中 bib_i 为相应摆法中第 ii 行皇后所处的列数。

已经知道 8 皇后问题一共有 92 组解(即 92 个不同的皇后串)

给出一个数 bb,要求输出第 bb 个串。

串的比较是这样的:皇后串 xx 置于皇后串 yy 之前,当且仅当将 xx 视为整数时比 yy 小。

输入格式

从标准输入读入数据。

第一行包含整数 nn,表示共有 nn 组测试数据。

每组测试数据占 11 行,包括一个正整数 bb,保证 1b921 \le b \le 92

输出格式

输出到标准输出。

输出有 nn 行,每行输出对应一个输入。

输出应是一个正整数,是对应于 bb 的皇后串。

2
1
92
15863724
84136275

提示

Chap 04,栈与队列,试探回溯法

虽然表面上考察的是搜索,但是搜索过程中递归的栈调用过程对应实际的栈。对应的递归方式也可以使用栈来迭代模拟,当然本题不做要求。

来源

远古时期北大考研机试题