luogu#P5919. [POI2004] MAK

[POI2004] MAK

题目描述

置换就是 nn 个元素 1111 的函数映射p:{1,2,,n}{1,2,,n}p:\{1,2,\ldots,n\}\to\{1,2,\ldots,n\},一个置换 pporder 等于最小的 k1k\ge1,且对所以的 i=1,2,...,ni=1,2,...,n 都满足:

p(p(...(p(i))...))=ip(p(...(p(i))...))=i

(共 kk 次)

举个例子,对于 33 个元素的 order p(1)=3,p(2)=2,p(3)=1p(1)=3,p(2)=2,p(3)=12 2,因为p(p(1))=1,p(p(2))=2,p(p(3))=3p(p(1))=1,p(p(2))=2,p(p(3))=3

对于给定的 nn 我们想要一个长度为 nn 的置换的 order 尽量大。比如说长度为 55 的置换的 order 最大为 66

一个例子就是 p(1)=4,p(2)=5,p(3)=2,p(4)=1,p(5)=3p(1)=4,p(2)=5,p(3)=2,p(4)=1,p(5)=3

对于所有使得 order 最大的置换中,我们要找到字典序最小的那个。

更精确来说,我们说置换 pp 小于置换 rr,即存在一个 ii,使得对于所有 j<ij<i 都满足 p(j)=r(j)p(j)=r(j)p(i)<r(i)p(i)<r(i)。那么对于长度为 55 的置换中最小的那个为 p(1)=2,p(2)=1,p(3)=4,p(4)=5,p(5)=3p(1)=2,p(2)=1,p(3)=4,p(4)=5,p(5)=3

输入格式

第一行一个数 dd 表示一共 dd 组数据。

接下来 dd 行表示长度为 n1,n2,...,ndn_1,n_2,...,n_d

输出格式

输出 dd 行每行一个最优置换。

2
5
14
2 1 4 5 3
2 3 1 5 6 7 4 9 10 11 12 13 14 8

提示

对于 100%100\% 的数据,1d101\le d\le101ni1041\le n_i\le10^4