7393. 排列顺序 (Permutation Order)
时间限制:1000 MS 内存限制:512 MB
题目描述
# 排列顺序 (Permutation Order) 时间限制:$1.00\text{ s}$ 空间限制:$512\text{ MB}$ ## 题目描述 设 $p(n,k)$ 表示所有由 $1 \dots n$ 构成的排列中,字典序第 $k$ 小的排列。例如,$p(4,1)=[1,2,3,4]$,且 $p(4,2)=[1,2,4,3]$。 您的任务是处理以下两类询问: 1. 给定 $n$ 和 $k$,求出排列 $p(n,k)$。 2. 给定 $n$ 和排列 $p(n,k)$,求出对应的 $k$。 ## 输入格式 第一行包含一个整数 $t$:测试用例的数量。 接下来的 $t$ 行,每行描述一个测试,格式为以下两种之一: - `1 n k` - `2 n` 后面跟着 $n$ 个整数,表示排列 $p(n,k)$。 ## 输出格式 对于每个测试,按照样例格式输出对应的结果。如果是第一类询问,输出 $n$ 个整数表示对应的排列;如果是第二类询问,输出对应的 $k$。 ## 输入输出样例 ### 输入 #1 ```text 6 1 4 1 1 4 2 2 4 1 2 3 4 2 4 1 2 4 3 1 5 42 2 5 2 4 5 3 1 ``` ### 输出 #1 ```text 1 2 3 4 1 2 4 3 1 2 2 4 5 3 1 42 ``` ## 说明/提示 ### 数据规模与约定 - $1 \le t \le 1000$ - $1 \le n \le 20$ - $1 \le k \le n!$ ---