luogu#P6620. [省选联考 2020 A 卷] 组合数问题

[省选联考 2020 A 卷] 组合数问题

题目背景

1s 512M

题目描述

众所周知,小葱同学擅长计算,尤其擅长计算组合数。小葱现在希望你计算

$$\left(\sum_{k=0}^{n}f(k)\times x^k\times \binom{n}{k}\right)\bmod p $$

的值。其中 nn, xx, pp 为给定的整数,f(k)f(k) 为给定的一个 mm 次多项式 f(k)=a0+a1k+a2k2++amkmf(k) = a_0 + a_1k + a_2k^2 + \cdots + a_mk^m(nk)\binom{n}{k} 为组合数,其值为 (nk)=n!k!(nk)!\binom{n}{k} = \frac{n!}{k!(n-k)!}

输入格式

第一行四个非负整数 nn, xx, pp, mm

第二行 m+1m + 1 个整数,分别代表 a0a_0, a1a_1, \cdots, ama_m

输出格式

仅一行一个整数表示答案。

5 1 10007 2
0 0 1
240
996 233 998244353 5
5 4 13 16 20 15
869469289

提示

样例 1 解释

$f(0) = 0,f(1) = 1,f(2) = 4,f(3) = 9,f(4) = 16,f(5) = 25$。

x=1x = 1,故 xkx^k 恒为 11,乘积中的该项可以忽略。

$\binom 5 0 = 1, \binom 5 1 = 5, \binom 5 2 = 10, \binom 5 3 = 10, \binom 5 4 = 5, \binom 5 5 = 1$。

样例 3

见附加文件中 problem3.inproblem3.ans

数据范围与提示

对于所有测试数据:$1\le n, x, p \le 10^9, 0\le a_i\le 10^9, 0\le m \le \min(n,1000)$。

每个测试点的具体限制见下表:

测试点编号 nn\le mm\le 其他特殊限制
131\sim 3 10001000
464\sim 6 10510^5 00 pp 是质数
787\sim 8 10910^9
9129\sim 12 55
131613\sim 16 10001000 x=1x=1
172017\sim 20