AT_abc214_g [ABC214G] Three Permutations
题目描述
给定 (1,…,N) 的两个排列 p=(p1,…,pN) 和 q=(q1,…,qN)。
请计算有多少个 (1,…,N) 的排列 r=(r1,…,rN),使得对于所有 i (1≤i≤N),都有 ri=pi 且 ri=qi。请输出答案对 109+7 取模的结果。
输入格式
输入以如下格式从标准输入给出。
N p1 … pN q1 … qN
输出格式
请输出答案。
输入输出样例 #1
输入 #1
4
1 2 3 4
2 1 4 3
输出 #1
4
输入输出样例 #2
输入 #2
3
1 2 3
2 1 3
输出 #2
0
输入输出样例 #3
输入 #3
20
2 3 15 19 10 7 5 6 14 13 20 4 18 9 17 8 12 11 16 1
8 12 4 13 19 3 10 16 11 9 1 2 17 6 5 18 7 14 20 15
输出 #3
803776944
说明/提示
限制条件
- 1≤N≤3000
- 1≤pi,qi≤N
- pi=pj (i=j)
- qi=qj (i=j)
- 输入均为整数。
样例解释 1
满足条件的有 4 个排列,分别为 (3,4,1,2)、(3,4,2,1)、(4,3,1,2)、(4,3,2,1)。
样例解释 2
答案有可能为 0。
样例解释 3
请注意输出时需要对 109+7 取模。
由 ChatGPT 4.1 翻译