#THU20171C. 多项式求和

    ID: 190 Type: Default 1000ms 512MiB Tried: 2 Accepted: 1 Difficulty: 7 Uploaded By: Tags>清华推研机试考研组合数学线性代数矩阵乘法递推快速幂多项式拉格朗日插值

多项式求和

时间限制: 1.0 秒

空间限制: 512 MB

题目背景

小 K 最近刚刚习得了一种非常酷炫的多项式求和技巧,可以对某几类特殊的多项式进行运算。

非常不幸的是,小 K 发现老师在布置作业时抄错了数据,导致一道题并不能用刚学的方法来解,于是希望你能帮忙写一个程序跑一跑。

题目描述

给出一个 mm 阶多项式

f(x)=i=0mbixif(x) = \sum^m_{i=0}b_ix^i

对给定的正整数 aa,求

S(n)=k=0nakf(k)S(n) = \sum^n_{k=0}a^kf(k)

由于这个数可能比较大,所以你只需计算 S(n)S(n)109+710^9 + 7 取模后的值(即计算除以 109+710^9 + 7 后的余数)。

输入格式

从标准输入读入数据。

第一行包含三个整数 n,m,an, m, a

第二行包含 m+1m + 1 个整数,b0,b1,,bmb_0, b_1, \cdots, b_m 描述给定多项式的系数。

对于所有数据,1a, bi1091 \le a,~b_i \le 10^9

输出格式

输出到标准输出。

输出一行一个数,表示 S(n)S(n)109+710^9 + 7 取模后的结果。

5 2 3
1 1 1
9658

样例 1 解释

f(x)=1+x+x2f(x) = 1 + x + x^2,故 $f(0) = 1,~f(1) = 3,~f(2) = 7,~f(3) = 13,~f(4) = 21,~f(5) = 31$。

$f(0) + 3f(1) + 9f(2) + 27f(3) + 81f(4) + 243f(5) = 1 + 3 \times 3 + 9 \times 7 + 27 \times 13 + 81 \times 21 + 243 \times 31 = 9658$。

100 3 233
1 2 3 4
994811687
20170314 10 11037
1 2 3 4 5 6 7 8 9 10 11
133604769

子任务

测试点编号 nn mm aa
1,21,2 103\le 10^3 10\le 10 109\le 10^9
33 109\le 10^9 =1= 1 =1= 1
44 =2= 2
55 =3= 3 109\le 10^9
66 =5= 5 =1= 1
7,87,8 20\le 20
99 50\le 50 109\le 10^9
1010 100\le 100