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 翻译