574. 通项公式

单点时限: 3.0 sec

内存限制: 1024 MB

QQ小方以前不会算递推数列的通项公式,现在他会了,所以他急切的想教会你。

一种常见的递推数列通项公式求法是使用特征方程。

如果一个数列的递推公式为 an=c1an1+c2an2++ckank ,那么他所对应的特征方程为 rn=c1rn1+c2rn2++ckrnk ,即有 rkc1rk1c2rk2ck1rck=0

如果方程 rkc1rk1c2rk2ck1rck=0t 个不同的解 r1,r2,r3rt 且每个根所对应的重数为 m1,m2,m3mt ,显然有 mi1(i[1,t])i=1tmi=k

我们可以得到数列的通项公式为 $$a_n=(\alpha {1,0}+\alpha n+\cdots +\alpha {1,m-1}n^{m_{1}-1})r_1^n\+(\alpha {2,0}+\alpha n+\cdots +\alpha {2,m-1}n^{m_{2}-1})r_2^n\+\cdots \+(\alpha {t,0}+\alpha n+\cdots +\alpha {1,m-1}n^{m_{t}-1})r_t^n$$ 。

其中 n=1,2,3, ,而 αi,j(1it,0jmi1) 为一个常量,可通过前几项待定系数法求得。

单单讲给你听肯定是不够的,为了表现自己,QQ小方现在要考考你。

给定一个长度为 n 的序列 an ,定义 f1(m)=i=1maifi(m)=j=1mfi1(j)(i>1) ,求 fk(n)modp

输入格式

第一行三个整数 n,k,p ( 1n,k107,1p100 ,且 p 为质数)。

为了减小输入规模,第二行给出三个整数 a1,mul,add ( 0a1,mul,add<p ),其中 ai+1=((ai×mul+add)i)modp ( i1 )。

代表按位异或运算。

输出格式

一行一个整数,代表 fk(n)modp

样例

Input
3 3 7
0 3 4
Output
4
Input
5 5 13
10 3 9
Output
4

提示

在第一组数据中, ai=0,5,3 ; f1(i)=0,5,1 ; f2(i)=0,5,6 ; f3(i)=0,5,4

19 人解决,43 人已尝试。

25 份提交通过,共有 458 份提交。

6.7 EMB 奖励。

创建: 6 年,10 月前.

修改: 5 年,10 月前.

最后提交: 4 年,4 月前.

来源: EOJ Monthly 2019.5

题目标签