AT_arc228_a [ARC228A] Row and Col swap

题目描述

给定两个排列 $P=(P_1,P_2,\dots,P_N)$ 和 $Q=(Q_1,Q_2,\dots,Q_N)$,它们都是 $(1,2,\dots,N)$ 的一个排列。 对于 $P$ 和 $Q$,你需要重复以下操作共 $M$ 次:每次选择并执行以下三种操作之一。 - 选择满足 $1 \le i < j \le N$ 的整数 $i$ 和 $j$,交换 $P_i$ 和 $P_j$。 - 选择满足 $1 \le i < j \le N$ 的整数 $i$ 和 $j$,交换 $Q_i$ 和 $Q_j$。 - 选择一个满足 $1 \le i \le N$ 的整数 $i$,交换 $P_i$ 和 $Q_i$。 请计算,有多少种操作序列,使得经过 $M$ 次操作后,$P$ 和 $Q$ 依然是 $(1,2,\dots,N)$ 的排列。结果对 $998244353$ 取模。

输入格式

输入从标准输入给出,格式如下: > $N$ $M$ > $P_1\ P_2\ \dots\ P_N$ > $Q_1\ Q_2\ \dots\ Q_N$

输出格式

输出答案。

说明/提示

### 样例解释 1 例如,以下操作序列满足条件。 - 进行第三种操作,选择 $i=1$,交换 $P_1$ 和 $Q_1$。此时 $P=(1,2,3)$,$Q=(1,3,2)$。 总共有 7 种恰好由以下任意一个操作组成的操作序列满足条件:三种交换 $P$ 的两个元素的操作,三种交换 $Q$ 的两个元素的操作,以及上述交换 $P_1$ 和 $Q_1$ 的操作。 ### 约束条件 - $1 \le N,M \le 500$ - $P$ 和 $Q$ 都是 $(1,2,\dots,N)$ 的一个排列。 - 所有输入均为整数。 由 ChatGPT 5 翻译