AT_abc247_h [ABC247Ex] Rearranging Problem

题目描述

有 $N$ 个人,编号为 $1, 2, \dots, N$,他们按照 $(1,2,\dots,N)$ 的顺序排成一列。第 $i$ 个人穿着颜色为 $c_i$ 的衣服。 高桥君进行了 $K$ 次操作,每次操作可以任选两个人 $i, j$,交换他们的位置。 在 $K$ 次操作结束后,对于所有满足 $1 \leq i \leq N$ 的整数 $i$,从前往后第 $i$ 个人所穿的衣服颜色都与 $c_i$ 一致。 请问在 $K$ 次操作结束后,可能出现多少种不同的人的排列方式?请将答案对 $998244353$ 取模后输出。

输入格式

输入以如下格式从标准输入中给出。 > $N$ $K$ $c_1$ $c_2$ $\dots$ $c_N$

输出格式

请输出答案。

说明/提示

## 限制条件 - $2 \leq N \leq 200000$ - $1 \leq K \leq 10^9$ - $1 \leq c_i \leq N$ - 输入的所有数均为整数。 ## 样例解释 1 高桥君的操作以及操作后可能的排列如下所示。 - 将第 $1$ 个人和第 $2$ 个人交换位置。操作后排列为 $(2, 1, 3, 4)$。 - 将第 $1$ 个人和第 $4$ 个人交换位置。操作后排列为 $(4, 2, 3, 1)$。 - 将第 $2$ 个人和第 $4$ 个人交换位置。操作后排列为 $(1, 4, 3, 2)$。 ## 样例解释 2 举一个可能的高桥君的操作例子如下。 - 第 $1$ 次操作,将第 $1$ 个人和第 $3$ 个人交换位置。操作后排列为 $(3, 2, 1)$。 - 第 $2$ 次操作,将第 $2$ 个人和第 $3$ 个人交换位置。操作后排列为 $(2, 3, 1)$。 - 第 $3$ 次操作,将第 $1$ 个人和第 $3$ 个人交换位置。操作后排列为 $(2, 1, 3)$。 请注意,在操作过程中,从前往后第 $i$ 个人的衣服颜色不一定始终与 $c_i$ 一致。 由 ChatGPT 4.1 翻译