AT_jsc2024_final_c Subsequence Reversal
题目描述
给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\cdots,A_N)$ 和一个整数 $K$。
你将 $A$ 的副本并列 $K$ 次连接,得到一个长度为 $NK$ 的整数序列 $x=(x_1,x_2,\cdots,x_{NK})$。
接下来你将恰好进行下面的操作一次:
- 选择 $x$ 的一个(不一定连续的)(可以为空)子序列,并将其元素顺序翻转。更准确地说,选择一个下标序列 $1 \leq i_1 < i_2 < \cdots < i_s \leq NK$(长度 $s$ 任意),并且对于每一个 $1 \leq j \leq s$,用 $x_{i_{s-j+1}}$ 的值替换 $x_{i_j}$。这些置换是同时进行的。
请你求出操作后可能得到的数列 $x$ 有多少种,结果对 $998244353$ 取模。
输入格式
输入为以下格式,从标准输入读入:
> $N$ $K$ $A_1$ $A_2$ $\cdots$ $A_N$
输出格式
输出答案。
说明/提示
## 样例解释 1
在本例中,$x=(1,2,1,2)$。操作后可能得到的数列有以下 $6$ 种:
- $(1,2,1,2)$:$s=1$,选择 $(i_1)=(1)$ 即可。
- $(2,1,1,2)$:$s=2$,选择 $(i_1,i_2)=(1,2)$ 即可。
- $(1,1,2,2)$:$s=2$,选择 $(i_1,i_2)=(2,3)$ 即可。
- $(1,2,2,1)$:$s=2$,选择 $(i_1,i_2)=(3,4)$ 即可。
- $(2,2,1,1)$:$s=2$,选择 $(i_1,i_2)=(1,4)$ 即可。
- $(2,1,2,1)$:$s=4$,选择 $(i_1,i_2,i_3,i_4)=(1,2,3,4)$ 即可。
## 数据范围
- $1 \leq N \leq 300$
- $1 \leq K \leq 10^{18}$
- $1 \leq A_i \leq N$
- 输入的所有数都是整数。
由 ChatGPT 5 翻译