Description
动态规划的实现形式之一是递推,因此递推在oi中十分重要。在某信息学的分支学科中,LC学会了如何求一阶线性递推数列。由于他现在正在学习主干学科,因此希望知道求出N阶线性递推数列。为此,他了解到以下内容:
一个N阶线性递推式是这样的式子:
F1=a0Fi-n+a1Fi-(n-1)+…+an-1*Fi-1+an
也就是说,这个数列的每一项都是由他之前的连续N项加权相加所得。其中还包括一个常数an。
例如,当N=2,a0=a1=1,a2=0时,这个式子就是我们熟悉的斐波那契数列。当然,作为边界条件。f0,f1,…fn-1都是已知的。
Lc对如何去求这个式子一筹莫展,因此他想请你帮忙。你的任务是对于一个给定的N阶线性递推式,求出他的第k项。
Input
第一行两个整数:n,k。其中n表示这是一个N阶线性递推式,k表示你需要球的那一项。
第二行有n+1个整数:a0,a1,…an,表示这个递推式的系数。
第三行有n个整数:f0,f1,…,fn-1表示数列的初始值。
Output
只有一行,其中只有一个整数,表示这个数列第k项的值。由于数据较大,你只需输出mod 9973的值。
Sample Input
2 10
1 1 0
0 1
Sample Output
55
思路:
我们考虑 [ f i − n f i − n + 1 f i − n + 2 … … f i − 1 1 ] \begin{bmatrix}f_{i-n} & f_{i-n+1} & f_{i-n+2} & …… f_{i-1} & 1\end{bmatrix} [fi−nfi−n+1fi−n+2……fi−11]转换到 [ f i − n + 1 f i − n + 2 f i − n + 3 … … f i 1 ] \begin{bmatrix}f_{i-n+1} & f_{i-n+2} & f_{i-n+3} & …… f_{i} & 1\end{bmatrix}