CF1716B.Permutation Chain

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Permutation Chain

题目描述

一个长度为 nn 的排列是一个由 11nn 的整数构成的序列,其中每个整数恰好出现一次。

定义排列 pp 的“固定度”为其“定点”数量——即满足 pj=jp_j = j 的位置 jj 的个数,其中 pjp_j 表示排列 pp 的第 jj 个元素。

你需要从初始排列(即 a1=[1,2,,n]a_1 = [1, 2, \dots, n])开始,构造一个排列序列 a1,a2,a_1, a_2, \dots,我们称之为“排列链”。因此,aia_i 是第 ii 个长度为 nn 的排列。

对于每一个 i2i \geq 2,排列 aia_i 应通过交换 ai1a_{i-1} 中的任意两个元素(不要求相邻)得到。排列 aia_i 的固定度必须严格小于排列 ai1a_{i-1} 的固定度。

考虑 n=3n = 3 时的一些排列链示例:

  • a1=[1,2,3]a_1 = [1, 2, 3]a2=[1,3,2]a_2 = [1, 3, 2] —— 这是一个长度为 22 的合法链。从 a1a_1a2a_2,第 22 和第 33 个元素交换,固定度从 33 降到 11
  • a1=[2,1,3]a_1 = [2, 1, 3]a2=[3,1,2]a_2 = [3, 1, 2] —— 这不是一个合法链。对于 n=3n = 3,第一个排列必须始终为 [1,2,3][1, 2, 3]
  • a1=[1,2,3]a_1 = [1, 2, 3]a2=[1,3,2]a_2 = [1, 3, 2]a3=[1,2,3]a_3 = [1, 2, 3] —— 这不是一个合法链。从 a2a_2a3a_3,第 22 和第 33 个元素交换,但固定度从 11 增加到 33
  • a1=[1,2,3]a_1 = [1, 2, 3]a2=[3,2,1]a_2 = [3, 2, 1]a3=[3,1,2]a_3 = [3, 1, 2] —— 这是一个长度为 33 的合法链。从 a1a_1a2a_2,第 11 和第 33 个元素交换,固定度从 33 降到 11。从 a2a_2a3a_3,第 22 和第 33 个元素交换,固定度从 11 降到 00

请你求出最长的排列链。如果有多种最长方案,输出任意一种即可。

输入格式

第一行包含一个整数 tt1t991 \le t \le 99),表示测试用例数量。

每个测试用例仅一行,包含一个整数 nn2n1002 \le n \le 100),表示排列链中每个排列的长度。

输出格式

对于每个测试用例,首先输出一个整数 kk,表示排列链的长度。

接下来输出 kk 个排列 a1,a2,,aka_1, a_2, \dots, a_ka1a_1 必须是长度为 nn 的初始排列([1,2,,n][1, 2, \dots, n])。对于每个 2ik2 \le i \le kaia_i 应通过交换 ai1a_{i-1} 中的两个元素得到,且其固定度严格小于 ai1a_{i-1} 的固定度。

说明/提示

由 ChatGPT 4.1 翻译

样例

2
2
3
2
1 2
2 1
3
1 2 3
3 2 1
3 1 2

在线编程 IDE

建议全屏模式获得最佳体验