A85926.「联合省选 2020 A」组合数问题
省选/NOI-
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
众所周知,小葱同学擅长计算,尤其擅长计算组合数。小葱现在希望你计算
(k=0∑nf(k)×xk×(kn))modp
的值。其中 n,x,p 为给定的整数,f(k) 为给定的一个 m 次多项式 f(k)=a0+a1k+a2k2+⋯+amkm。
(kn) 为组合数,其值为 (kn)=k!(n−k)!n!。
输入格式
第一行四个非负整数 n,x,p,m。
第二行 m+1 个整数,分别代表 a0,a1,…,am。
输出格式
仅一行一个整数表示答案。
输入输出样例
输入#1
5 1 10007 2 0 0 1
输出#1
240
输入#2
996 233 998244353 5 5 4 13 16 20 15
输出#2
869469289
说明/提示
对于所有测试数据:1≤n,x,p≤109,0≤ai≤109,0≤m≤min(n,1000)。
每个测试点的具体限制见下表:
| 测试点编号 | $n\le $ | $m\le $ | 其他特殊限制 |
|---|---|---|---|
| 1∼3 | 1000 | 1000 | |
| 4∼6 | 105 | 0 | p 是质数 |
| 7∼8 | 109 | 0 | |
| 9∼12 | 109 | 5 | |
| 13∼16 | 109 | 1000 | x=1 |
| 17∼20 | 109 | 1000 |