AT_arc112_e [ARC112E] Cigar Box

题目描述

对于数列 $(1,2,\dots,n)$,经过恰好 $m$ 次如下操作后,变成了 $(a_1,\dots,a_n)$。 - 选择一个项并将其删除。然后,将被删除的项添加到数列的开头或末尾。 请你求出,作为 $m$ 次操作序列可能的方案数,模 $998244353$ 的余数。 这里,两个操作序列相同,当且仅当“每一步所选的项和添加的位置都相同”。

输入格式

输入以如下格式从标准输入给出。 > $n$ $m$ $a_1$ $\dots$ $a_n$

输出格式

输出作为操作序列可能的方案数,模 $998244353$ 的余数。

说明/提示

## 限制条件 - $2 \leq n \leq 3000$ - $1 \leq m \leq 3000$ - $a_1,\dots,a_n$ 是 $1,\dots,n$ 的一个排列 ## 样例解释 1 存在以下 $5$ 种可能的操作序列。 - 删除 $1$ 并将其添加到开头。数列变为 $(1,2,3,4,5)$。然后,删除 $3$ 并将其添加到末尾。数列变为 $(1,2,4,5,3)$。 - 删除 $3$ 并将其添加到开头。数列变为 $(3,1,2,4,5)$。然后,删除 $3$ 并将其添加到末尾。数列变为 $(1,2,4,5,3)$。 - 删除 $3$ 并将其添加到末尾。数列变为 $(1,2,4,5,3)$。然后,删除 $1$ 并将其添加到开头。数列变为 $(1,2,4,5,3)$。 - 删除 $3$ 并将其添加到末尾。数列变为 $(1,2,4,5,3)$。然后,删除 $3$ 并将其添加到末尾。数列变为 $(1,2,4,5,3)$。 - 删除 $5$ 并将其添加到末尾。数列变为 $(1,2,3,4,5)$。然后,删除 $3$ 并将其添加到末尾。数列变为 $(1,2,4,5,3)$。 ## 样例解释 2 在 $4$ 种操作中,有 $2$ 种操作不会改变数列,另外 $2$ 种操作会交换 $2$ 个元素。因此,所有操作序列中有一半(即 $4^m/2 = 2^{31} = 2147483648$)是满足条件的。于是,$2147483648$ 除以 $998244353$ 的余数 $150994942$ 就是答案。 由 ChatGPT 4.1 翻译