#P3014. [USACO11FEB] Cow Line S

    ID: 2053 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>贪心2011USACO枚举,暴力康托展开

[USACO11FEB] Cow Line S

Description

编号为 11N(1N20)N (1 \leq N \leq 20)NN 头奶牛正在和农夫约翰玩他们的又一个疯狂游戏。奶牛们将自己排列成一行,并询问农夫约翰它们的排列编号是多少。作为回应,农夫约翰可以给它们一个排列编号,奶牛们必须重新排列成那个排列。

排列编号是通过按字典序给所有排列编号来分配的。

考虑这个例子:

农夫约翰有 55 头奶牛,并给它们排列编号 33

按升序字典序排列的排列:第 11 个:1,2,3,4,51,2,3,4,5

22 个:1,2,3,5,41,2,3,5,4

33 个:1,2,4,3,51,2,4,3,5

因此,奶牛们将自己排列成奶牛排列 1,2,4,3,51,2,4,3,5

奶牛们反过来排列成配置「1,2,5,3,41,2,5,3,4」,并询问农夫约翰它们的排列编号是多少。

继续列表:

44 个:1,2,4,5,31,2,4,5,3

55 个:1,2,5,3,41,2,5,3,4

农夫约翰可以看到答案是 55

农夫约翰和奶牛们希望你能帮助他们玩这个游戏。他们有 K(1K10,000)K (1 \leq K \leq 10,000) 个查询需要帮助。查询 ii 有两个部分:CiC_i 是命令,可以是 PQ

如果 CiC_iP ,那么查询的第二部分将是一个整数 Ai(1AiN!)A_i (1 \leq A_i \leq N!),这是一个排列编号。这是农夫约翰挑战奶牛们排成正确的奶牛排列。

如果 CiC_iQ,那么查询的第二部分将是 NN 个不同的整数 Bij(1BijN)B_{ij} (1 \leq B_{ij} \leq N)。这将表示一个奶牛排列。这是奶牛们挑战农夫约翰找出它们的排列编号。

Input Format

* 第 11 行:两个用空格分隔的整数:NNKK

* 第 22 行到第 2×K+12 \times K + 1 行:第 2×i2 \times i 行和第 2×i+12 \times i + 1 行将包含一个查询。

2×i2 \times i 行将只包含一个字符:如果奶牛们排列并询问农夫约翰它们的排列编号,则为 Q;如果农夫约翰给奶牛们一个排列编号,则为 P

如果第 2×i2 \times i 行是 Q,那么第 2×i+12 \times i + 1 行将包含 NN 个用空格分隔的整数 BijB_ij,表示奶牛排列。如果第 2×i2 \times i 行是 P,那么第 2×i+12 \times i + 1 行将包含一个整数 AiA_i,这是要解决的排列编号。

Output Format

* 第 11 行到第 KK 行:第 ii 行将包含查询 ii 的答案。

如果输入的第 2×i2 \times i 行是 Q,那么这一行将包含一个整数,即第 2×i+12 \times i + 1 行中奶牛排列的排列编号。

如果输入的第 2×i2 \times i 行是 P,那么这一行将包含 NN 个用空格分隔的整数,给出第 2×i+12 \times i + 1 行中编号的奶牛排列。

5 2 
P 
3 
Q 
1 2 5 3 4 

1 2 4 3 5 
5 

Hint

(由 ChatGPT 4o 翻译)