(详解)矩阵快速幂详解与常见转移矩阵的构造

目录

转移矩阵求解套路

常见转移矩阵1-斐波那契矩阵

承接套路

常见转移矩阵2-类斐波那契数列

常见转移矩阵3-幂常数

 前缀和

具体DP问题


---------------------------------------------------------------------------------------------------------------------------------

网上大部分讲解都是停留在快速幂的模板和求解斐波那契数列上,但矩阵快速幂的应用远不及此,且难点在于转移矩阵的构造,而且会结合具体DP问题来构造转移矩阵。

答案的求解包括三个矩阵 答案矩阵 = 转移矩阵 * 初始矩阵

  • 转移矩阵求解套路

重点在于转移矩阵的求得,套路是,找到转移方程,由特殊到一般,考虑承接

  • 常见转移矩阵1-斐波那契矩阵

找到转移方程

可知,要想求解f[n],必须知道f[n-1],f[n-2]

考虑特殊情况f[n]

得初始矩阵

答案矩阵(f(n)处于(1,1)位置,故是转移矩阵的第一行乘上初始矩阵的第一列)

转移矩阵

得到特殊矩阵

考虑承接

考虑到我们即使我们本次求得了f(n),但是我们不得不为下一次f(n+1)的求解做准备,因此我们需要承接上次求解的f(n-1),如何求解,很容易,f(n-1)在(2,1)位置,只需要转移方程第二行乘上初始方程等于f(n-1)即可,

     

特殊到一般

对转移方程进行快速幂,把初始方程变成普通dp时最初状态,在斐波那契中的dp解法中,我们只需要先知道dp[0]=0,dp[1]=1即可。转移方程的幂数是n-1

当然,也完全可以这样,

承接套路

值得注意的是,这种承接方式在大多数题目中都适用,也就是将二行往后的每行i,(i,i-1)位置填上1,其余位置填上0即可。

 

常见转移矩阵2-类斐波那契数列

主要是一些含有常数系数的

 

第一行换系数,第二行往后考虑承接即可

 

常见转移矩阵3-幂常数

 

按照第一类时的套路,求fn,无非就是要知道fn-1,与n^2

可是我们发现,要求出(n+1)^2,靠n^2是远远不够的

(n+1)^2=n^2+1+2*n  ,我们还应该知道n,和常数1

 n+1)^2被推了出来,还要考虑本次能供fn+1使用,因此还应该加上n+1,与常数1

 然后特殊化一般,利用快速幂求解即可。

其余更高次幂常数,利用二项式定理

n^3 = (n-1+1)^3 = (n-1)^3 + 3*(n-1)^2 +   3*(n-1)  + 1

n^4  =(n-1+1)^4 = (n-1)^4  + 4*(n-1)^3  + 6*(n-1)^2 + 4*(n-1)  + 1

.......以此类推

n^3为例 

 前缀和

T[0]=T[1]=T[2]=1;

T[N]=T[N-1]+T[N-2]+T[N-3]

求解  T[A]+T[A+1]+...+T[B]

也就是要构造前缀和sb,sa-1

可以先求出sn

sn=tn+sn-1

这里的tn的构造方式就是一个类菲波那切数列的构造方式

考虑承接即可

具体DP问题

P5343 【XR-1】分块-矩阵快速幂加速DP_石油生产队里的秦三的博客-CSDN博客

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qinsanma and Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值