编程题
### 问题描述 给定 $n$ 个盘子,编号为 $1$ 到 $n$,表示 $n$ 个盘子,其中数字越大的盘子越大。 初始状态下,这些盘子都放在第 $1$ 根柱子上,编号从 $n$ 到 $1$。即 $a[1]$ 是最下面的盘子,$a[1]=n,a[2]=n-1,...,a[n]=1$。 目标是将这些盘子移动到第 $3$ 根柱子上。每次只能移动一个盘子,并且大盘子不能放在小盘子上。现在要求根据给定的移动次数 $m$,输出移动 $m$ 次后的状态。 ### 输入格式 第 $1$ 行是整数 $T(1\le T\le 10)$,表示有 $T$ 组数据。 接下来有 $T$ 行,每行包含两个整数 $n$ $(1 \leq n \leq 63)$ 和 $m$ $(1\le m \leq 2^n-1)$。 ### 输出格式 输出移动 $m$ 次后的状态。每组输出包含 $3$ 行,第 $i$ 行的第一个数是第 $i$ 根柱子上的盘子数,然后是盘子的编号。 ### 输入样例 ```txt 3 3 2 4 5 39 183251937942 ``` ### 输出样例 ```txt 1 3 1 2 1 1 2 4 1 1 3 1 2 13 39 36 33 30 27 24 21 18 15 12 9 4 1 12 38 35 32 29 26 23 20 17 14 11 8 5 14 37 34 31 28 25 22 19 16 13 10 7 6 3 2 ```
查看答案
赣ICP备20007335号-2