AT_arc149_e [ARC149E] Sliding Window Sort
题目描述
给定正整数 $N$、$M$、$K$。考虑对正整数序列 $A = (A_0, \ldots, A_{N-1})$ 进行如下操作:
- 按照 $k = 0, 1, \ldots, K-1$ 的顺序,依次进行以下操作:
- 将 $A_{k\bmod N},\ A_{(k+1)\bmod N},\ \ldots,\ A_{(k+M-1)\bmod N}$ 升序排序。也就是说,将 $A_{k\bmod N},\ A_{(k+1)\bmod N},\ \ldots,\ A_{(k+M-1)\bmod N}$ 按从小到大排列为 $(x_0, \ldots, x_{M-1})$ 时,对于每个 $0 \leq j < M$,用 $x_j$ 替换 $A_{(k+j)\bmod N}$。
给定一个由 $1$ 到 $N$ 之间的整数构成的排列 $B = (B_0, \ldots, B_{N-1})$。请你计算有多少个正整数序列 $A$,使得经过上述操作后,$A$ 恰好变为 $B$。请将答案对 $998244353$ 取模后输出。
输入格式
输入以如下格式从标准输入读入:
> $N$ $M$ $K$ $B_0$ $B_1$ $\ldots$ $B_{N-1}$
输出格式
输出满足条件的正整数序列 $A$ 的个数,对 $998244353$ 取模后的结果。
说明/提示
## 限制条件
- $2 \leq N \leq 3 \times 10^5$
- $2 \leq M \leq N$
- $1 \leq K \leq 10^9$
- $1 \leq B_i \leq N$
- 如果 $i \neq j$,则 $B_i \neq B_j$
## 样例解释 1
例如 $A = (4,1,5,6,2,3)$ 满足条件。对于该 $A$,操作过程如下:
- $k=0$ 时,$A$ 变为 $(1,4,5,6,2,3)$。
- $k=1$ 时,$A$ 变为 $(1,4,5,6,2,3)$。
- $k=2$ 时,$A$ 变为 $(1,4,2,5,6,3)$。
- $k=3$ 时,$A$ 变为 $(1,4,2,3,5,6)$。
- $k=4$ 时,$A$ 变为 $(6,4,2,3,1,5)$,与 $B$ 一致。
## 样例解释 2
不存在满足条件的 $A$。
## 样例解释 3
所有由 $1$ 到 $20$ 组成的排列都满足条件。
由 ChatGPT 4.1 翻译