(详解)矩阵快速幂详解与常见转移矩阵的构造
目录
转移矩阵求解套路
常见转移矩阵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博客
(详解)矩阵快速幂详解与常见转移矩阵的构造相关推荐
- 数学--矩阵快速幂详解
引导: 我们之前都学快速幂: 矩阵也是可以相乘,方阵可以自乘,即乘幂运算. 作用: 将线性递推,优化log2nlog_{2}nlog2n 模板: 定义矩阵的阶 const int len = 15; ...
- 矩阵快速幂详解--用矩阵幂解决的多种问题
最经典的题目 以及洛谷一大堆相似题斐波那契升级版,广义斐波那契等等,都是相关的题目.一般而言我们求解斐波那契无非是不断地向前迭代,但是这样的效率实在是太低了.对于nnn的规模如此之大的题目应该如何求解 ...
- 快速幂和矩阵快速幂详解+模板
1.快速幂 一般的,我们都知道求只需要连续乘3次2就能得到,那么等于多少呢?其实这个一很简单,不就是13个2相乘吗,连续乘13次2就行了.那么,呢? 是不是要连续乘100次.1000次,我们将这类问题 ...
- c语言求佩尔方程的解设计思路,c语言版 佩尔方程求最小正整数解及第k解(矩阵快速幂)...
佩尔方程讲解连接: 若一个丢番图方程具有以下的形式: 且 为正整数,则称此方程为佩尔方程(英文:Pell's equation 德文:Pellsche Gleichung) 若 是完全平方数,则这个方 ...
- (矩阵快速幂)解所有类似Fibonacci 的题目
Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. F ...
- 矩阵快速幂+动态规划=蓝桥杯 垒骰子
矩阵快速幂+动态规划=蓝桥杯 垒骰子 如果还不知道什么是矩阵快速幂,可以参加我的另一篇文章:矩阵快速幂详解 题目 分析 看到 nnn 的范围达到了 10910^{9}109 ,如果使用暴力搜索是不现实 ...
- Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)
题目链接 F[1] = a, F[2] = b, F[i] = 2 * F[i-2] + F[i-1] + i ^ 4, (i >= 3) 现在要求F[N] 类似于斐波那契数列的递推式子吧, 但 ...
- UVA10689 Yet another Number Sequence【数列+矩阵快速幂】
Let's define another number sequence, given by the following function: f(0) = a f(1) = b f(n) = f(n ...
- 杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)
杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)[模板] 传送门 杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)[模板] 矩阵快速幂模板 Count Problem Descript ...
最新文章
- 智能计算机科学的奠基人,【编注】神经网络算法奠基人之一沃尔特·皮茨的传奇故事...
- getopts命令行参数处理
- tombstone问题分析
- [leetcode] 144. 二叉树的前序遍历
- 自定义EventSource(一)EventCounter
- css模糊_如何使用CSS模糊图像?
- CentOS6.5下的Nagios安装配置详解(图文)
- Linux IP别名,接口绑定,多网卡绑定
- IDEA开发WebService遇到的问题和SOAPUI工具的使用
- 15. jQuery - 删除元素
- 你的项目应该如何分层?
- CSS实现左侧固定大小,右侧自适应的布局
- 管理感悟:工作计划的作用
- Atitit 常见每日流程日程日常工作.docx v7 r8f
- How to Become a Better Learner
- 【时间序列】DTW算法详解
- PSD是什么文件格式
- ie11启用java时打不开_ie11打不开解决方法
- 利用stylecloud制作更酷炫的词云图
- 【基操】word插入的表格无法修改列宽
热门文章
- 分子骨架跃迁工具3DLinker 评测
- it项目验收--流程
- MFC打开已有的excel文件,并编辑,保存
- 如何写一个完整的django网站:配置环境啥的不讲(python+mysql+html相关) 壹
- 页面引入百度API报警示问题 A Parser-blocking, cross site (i.e. different eTLD+1) script,
- SAP SD模块中POD功能使用方法
- iOS小技能:蓝牙打印商品价签和交易小票的模版,实现自动连接最近使用的打印机 (针对佳博GP-2120TU型号为例子进行展开) 【包含完整demo源码】
- deepin 安装ZOOKEEPER
- 手机html立体相册,照片还放手机相册里就out了,试着自己编辑一个立体相册
- 2020华科软件学院 软件体系结构考试回忆