【SSL1532】递推

该博客介绍了如何解决N阶线性递推数列的问题,其中涉及动态规划的递推形式和矩阵乘法。通过矩阵转换和快速幂算法,可以计算给定阶数和初始值的递推数列的特定项,并对结果取模9973。
摘要由CSDN通过智能技术生成

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} [finfin+1fin+2fi11]转换到 [ 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}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值