AT_abc214_g [ABC214G] Three Permutations

题目描述

给定 $(1,\dots,N)$ 的两个排列 $p = (p_1,\dots,p_N)$ 和 $q = (q_1,\dots,q_N)$。 请计算有多少个 $(1,\dots,N)$ 的排列 $r = (r_1,\dots,r_N)$,使得对于所有 $i\ (1 \leq i \leq N)$,都有 $r_i \neq p_i$ 且 $r_i \neq q_i$。请输出答案对 $10^9 + 7$ 取模的结果。

输入格式

输入以如下格式从标准输入给出。 > $N$ $p_1$ $\ldots$ $p_N$ $q_1$ $\ldots$ $q_N$

输出格式

请输出答案。

说明/提示

## 限制条件 - $1 \leq N \leq 3000$ - $1 \leq p_i, q_i \leq N$ - $p_i \neq p_j\ (i \neq j)$ - $q_i \neq q_j\ (i \neq j)$ - 输入均为整数。 ## 样例解释 1 满足条件的有 $4$ 个排列,分别为 $(3,4,1,2)$、$(3,4,2,1)$、$(4,3,1,2)$、$(4,3,2,1)$。 ## 样例解释 2 答案有可能为 $0$。 ## 样例解释 3 请注意输出时需要对 $10^9 + 7$ 取模。 由 ChatGPT 4.1 翻译