#L3300. 「联合省选 2020 A」组合数问题

    ID: 4061 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>组合数学生成函数组合恒等式斯特林数

「联合省选 2020 A」组合数问题

#3300. 「联合省选 2020 A」组合数问题

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

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

的值。其中 n,x,pn, x, p 为给定的整数,f(k)f(k) 为给定的一个 mm 次多项式 f(k)=a0+a1k+a2k2++amkmf(k) = a_0 + a_1 k + a_2 k^2 + \cdots + a_m k^m

(nk)\binom n k 为组合数,其值为 (nk)=n!k!(nk)!\binom n k = \frac{n!}{k!(n-k)!}


输入格式
第一行四个非负整数 n,x,p,mn, x, p, m
第二行 m+1m + 1 个整数,分别代表 a0,a1,,ama_0, a_1, \dots, a_m


输出格式
仅一行一个整数表示答案。


样例 1

输入

5 1 10007 2
0 0 1

输出

240

解释:

  • f(0)=0f(0) = 0f(1)=1f(1) = 1f(2)=4f(2) = 4f(3)=9f(3) = 9f(4)=16f(4) = 16f(5)=25f(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$
  • 最终答案为:$0\times 1 + 1\times 5 + 4\times 10 + 9\times 10 + 16\times 5 + 25\times 1 = 240$

样例 2

输入

996 233 998244353 5
5 4 13 16 20 15

输出

869469289

数据范围与提示

对于所有测试数据:$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 其他特殊限制
1$\sim$3 10001000
4$\sim$6 10510^5 00 pp 是质数
7$\sim$8 10910^9
9$\sim$12 55
13$\sim$16 10001000 x=1x=1
17$\sim$20