#CF2123F. 最小化不动点
最小化不动点
F. 最小化不动点
时间限制:3 秒
内存限制:256 兆字节
称一个长度为 的排列 是好的,如果对于所有 ,都有 。
在所有长度为 的好排列中,找出一个具有最少不动点 的排列。如果存在多个这样的排列,输出任意一个。
长度为 的排列是一个包含 到 每个整数恰好一次的数组。
表示 和 的最大公约数。
排列 的一个不动点是一个下标 ()满足 。
输入
第一行包含一个整数 ()—— 测试用例数。
每个测试用例仅一行包含一个整数 ()—— 排列的长度。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一行,包含一个长度为 的好排列的示例,该排列具有最少的不动点。
样例
输入
4
2
3
6
13
输出
1 2
1 2 3
1 4 6 2 5 3
1 12 9 6 10 8 7 4 3 5 11 2 13
说明
第三个样例中,构造的排列为:
| 1 | ||
| 2 | 4 | 2 |
| 3 | 6 | 3 |
| 4 | 2 | |
| 5 | ||
| 6 | 3 | |
可见对于所有 ,。此外,只有两个不动点( 和 )。可以证明,对于长度为 的好排列,不可能有更少的不动点。