UOJ Logo

NOI.AC

1S 1024MB

#2080. 线性递推式(recursion)

统计

线性递推式(recursion)

【问题描述】

动态规划DP的实现形式之一是递推,因此递推在oi中十分重要。在某信息学的分支学科中,LC学会了如何求一阶线性递推数列。

由于他想在正在学习主干学科,因此希望知道求出N阶线性递推数列。为此,他了解到了以下的内容:

一个N阶线性递推式是这样的式子:

也就是说,这个数列的每一项都是由他之前连续N项加权相加所得。其中还包括一个常数An。

例如,当$N=2,a0=a1=1,a2=0$时,这个式子就是我们熟悉的斐波那契数列。当然,作为这界条件,$f0、f1…fn-1$都是已知的。

LC对这如何去求这个式子一筹莫展,因此请你来帮助他。你的任务就是对于一个给定的N阶线性递推式,求出它的第K项是多少。

【输入文件】

第一行两个整数:$N,K$,其中N表示这个式子是N阶线性递推式,K表示你需要求得那一项。

第二行有N+1个整数:$A0,A1,…,An$,表示这个递推式的系数。

第三行有N个整数:$F0,F1,….,Fn-1$,表示数列的初始值。

【输出文件】

只有一行,其中只有一个整数,表示这个数列第K项的值。由于数据较大,你只需输出结果 mod 9973的值。

【样例输入】

2 10

1 1 0

0 1

【样例输出】

55

【数据范围】

对于50%的数据:$N<=K<=10^6$

对于100%的数据:

1<N<10

N<=K<=10^18

1<=Ai,Fi<=10^4

【提示】

例如,对于斐波那契数可以列出这个递推公式:

$$[f_i \ \ f_{i+1}]=[f_{i-1}\ \ f_i]*\begin{bmatrix}0 & 1 \\ 1 & 1\\ \end{bmatrix}$$

矩阵乘法不满足交换律,但满足结合律。