【题目描述】
给定一个素数 p,以及 Z/pZ 上的 K 元多项式 f(x1,x2,…,xK) 与 g(x1,x2,…,xK)。
请在模 (1−x1N1,1−x2N2,…,1−xKNK) 的意义下,计算 f 与 g 的乘积。
其中 Ni 是 p−1 的约数。
【输入】
文本
$P$ $K$
$N_1$ $N_2$ ... $N_K$
$f$
$g$
f、g 是长度为 ∏Ni 的整数数组,元素均为 0 到 p−1 之间的整数。
其中第 i=i1+i2N1+⋯+iKN1N2…NK−1 个元素对应 (x1i1,x2i2,…,xKiK) 的系数。
【输出】
fg 是长度为 ∏Ni 的整数数组,元素均为 0 到 p−1 之间的整数。
与输入格式相同,第 i=i1+i2N1+⋯+iKN1N2…NK−1 个元素对应 (x1i1,x2i2,…,xKiK) 的系数。
【输入样例】
文本
101 1
5
1 2 3 4 5
6 7 8 9 10
【输出样例】
【输入样例2】
文本
13 2
2 3
1 2 3 4 5 6
7 8 9 10 11 12
【输出样例2】
【输入样例3】
【输出样例3】
【数据范围】
- 2≤p≤1000000000
- p 是素数
- 0≤K≤18
- ∏Ni≤262144
- 2≤Ni
- Ni 是 p−1 的约数
【来源】
Library Checker(yosupo06) multivariate_convolution_cyclic