关于矩阵快速幂的用法总结QwQ
umm首先矩阵快速幂的板子就不港了比较简单的还是?就结合二进制地理解一下就好了,代码可以翻蒟蒻の考前续命这里面放了我记得?
主要是说下应用趴?
目前我会的似乎就是个矩阵加速?简单来说就是个给一个递推式(以板子为例说下?那么递推式就是f[x]=f[x-3]+f[x-1])给一个k要快速地求出f(k)
umm其实这个的话就是构造一个矩阵,然后套个矩阵快速幂就好了鸭
矩乘当然是板子的了,主要问题在于构造矩阵,这里港下我肝了一个下午的理解qwq
定义
首先我们要理解矩阵?它的作用在哪儿?
umm这个点的话我觉得结合方程组和图像应该会好理解一些?然而我懒得画图也懒得举例辽QAQ所以放一个我学习矩阵的网址这里我觉得解释得真的贼好QwQ特别便于理解QwQ
矩阵加速线性递推式
然后矩阵最重要的应用应该就是矩阵加速?然后矩阵加速唯一一个有难度的就在于怎么构造矩阵
那就以f[i]=f[i-1]+f[i-3]为例港下
很容易能发现我们是从f[n-1],f[n-2],f[n-3]推出f[n],f[n-1],f[n-2],那我们就可以做出这样一个东西
f[n-1] f[n]
f[n-2] × T = f[n-1]
f[n-3] f[n-2]
然后!如果我们能求出T,就可以矩阵快速幂地求出来辣!
然后思考一下可以得到f[]之间的关系
f[ n ]=1*f[n-1]+0*f[n-2]+1*f[n-3]
f[n-1]=1*f[n-1]+0*f[n-2]+0*f[n-3]
f[n-2]=0*f[n-1]+1*f[n-2]+0*f[n-3]
就能构造出
1,0,1
1,0,0
0,1,0然后快速幂走一波,over
然后还有一个小细节是关于最开始的那个矩阵?
那个我不会构造,,,,所以我一直是大概性地猜一把然后多套几个数据然后就大概套出来了,,,关于这个我还没有总结出来呢QAQ等多打几个模板再总结下趴QAQ
然后之前考试的时候碰到了类似的题目,tr神仙总结了一下QwQ
首先我们要知道,对于矩阵来说,尽量是越小越好的
举个eg,2×2的矩阵,和3×3的矩阵,相差就会有3倍的常数
所以矩阵能小尽量小
然后关于上面那个T的最小size,先写个一般式:f[i]=A*f[i-1]+B*f[i-2]+C
首先想到因为矩阵乘法都是乘法,肯定搞不出加法的,所以状态要设成这样:
f[i-1] f[i]
f[i-2] × T = f[i-1]
C C
然后就看
f[i]=A*f[i-1]+B*f[i-2]+1*C
f[i-1]=1*f[i-1]+0*f[i-2]+0*C
C=0*f[i-1]+0*f[i-2]+1*C
所以构出来就是这样儿的
A,B,1
1,0,0
0,0,1
然后如果再一般一点儿,变成这样呢:f[i]=A*f[i-d1]+B*f[i-d2]+C
也是能解决的,懒得画图辣,写一个结论
f[i]=A1*f[i-1]+A2*f[i-2]+A3*f[i-3]+...
构造出来的T就是
A1,A2,A3, ...
1 , 0, 0, ...
0 , 1, 0, ...
...
然后如果还有个常数就另外加个常数就欧克,看上面"f[i]=A*f[i-1]+B*f[i-2]+C"这个的应该就欧克辣
以上就是,矩阵快速幂优化线性递推式的方法
就是矩阵加速的最基础应用,,,
矩阵光速幂
瞎取的名字,,,不知道484叫这个玩意儿,,,
还麻油落实,,,
放个例题:块速递推
拓展1 矩阵套矩阵
咕咕咕,,,?
拓展2 经典递推式
有好几个加法乘法的经典式子
如果明天能逃过来就写QAQ
然后最后放几个基本的题目就溜辣!
[X] 斐波那契数列
关于矩阵快速幂的用法总结QwQ的更多相关文章
- [技术]浅谈OI中矩阵快速幂的用法
前言 矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中,矩阵的运算是数值分析领域的重要问题. 基本介绍 (该部分为入门向,非入门选手可以跳过) 由 m行n列元素排列成的矩形阵列.矩阵里的 ...
- HDU6470 ()矩阵快速幂
http://acm.hdu.edu.cn/showproblem.php?pid=6470 题意:f[n] = f[n-1] + f[n-2]*2 + n^3; f[1] =1 ; f[2] = 2 ...
- 【矩阵快速幂】【杭电OJ1757】
http://acm.hdu.edu.cn/showproblem.php?pid=1757 A Simple Math Problem Time Limit: 3000/1000 MS (Java/ ...
- 【BZOJ】2553: [BeiJing2011]禁忌 AC自动机+期望+矩阵快速幂
[题意]给定n个禁忌字符串和字符集大小alphabet,保证所有字符在集合内.一个字符串的禁忌伤害定义为分割能匹配到最多的禁忌字符串数量(一个可以匹配多次),求由字符集构成的长度为Len的字符串的期望 ...
- Luogu P4159 [SCOI2009]迷路 矩阵快速幂+精巧转化
大致就是矩阵快速幂吧.. 这个时候会发现这些边权$\le 9$,然后瞬间想到上回一道题:是不是可以建一堆转移矩阵再建一个$lcm(1,2,3,4,5,6,7,8,9)$的矩阵?...后来发现十分的慢q ...
- HDU 2256Problem of Precision(矩阵快速幂)
题意 求$(\sqrt{2} + \sqrt{3})^{2n} \pmod {1024}$ $n \leqslant 10^9$ Sol 看到题解的第一感受:这玩意儿也能矩阵快速幂??? 是的,它能q ...
- 矩阵快速幂/矩阵加速线性数列 By cellur925
讲快速幂的时候就提到矩阵快速幂了啊,知道是个好东西,但是因为当时太蒟(现在依然)没听懂.现在把它补上. 一.矩阵快速幂 首先我们来说说矩阵.在计算机中,矩阵通常都是用二维数组来存的.矩阵加减法比较简单 ...
- 矩阵快速幂 hud 1575 Tr A 模板 *
Tr A Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 1757 A Simple Math Problem (矩阵快速幂)
Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 10 ...
随机推荐
- [HDFS Manual] CH1 HDFS体系结构
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Excel公式笔记
跨表,查找相同的数据,的其他列的值 =index(sheet2!$c$:$c$,match(sheet1!$b$,sheet2!$d$:$d$,)) 备注: =index(读哪里的数据(大范围), m ...
- mui 浏览器一样自动缩放
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- Golang语言下使用Protocol Buffer教程
代码仓库地址 一.介绍 Protobuf是Google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式.所以很适合用做数据存储和作为不同应用,不同语言之间相互通信的数据交换格式,只要实现相同的 ...
- WinForm中一个窗体调用另一个窗体
[转] WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码) //如果想打开一个 Form2 的窗体类,只需要: Form2 form = new Form2(); //有没有参数得看 ...
- COUNT分组条件去重的sql统计语句示例(mysql)
常规情况下的sql分组统计为: ) from 表 where 条件 group by 字段; 但是有时往往需要添加不同的条件已经去重的统计以上语句就不能满足需求. 解决方案为: 1.添加条件的统计方案 ...
- MySQL 5.7.14安装说明,解决服务无法启动
http://jingyan.baidu.com/article/f54ae2fc0affca1e92b84999.html http://www.myexception.cn/mysql/51431 ...
- Android用户点击返回按钮两次退出整个APP
最近的APP项目有一个需求就是连续点击两次返回按钮,退出整个APP,而不是返回到上一个页面,这个连续是有时间限制的,在我的项目里,我设置成2秒钟,如果两秒之内点击了两次,就代表用户想要退出整个APP, ...
- dhcpsrv:windows系统的优秀开源免费dhcp serve软件
概述: 官方网站 :http://www.dhcpserver.de/ 写博客时的可免费下载版本 2.52, 或者在cnblogs 本地下载 --========================== ...
- BarTender中如何调整数据输入表单的大小?
BarTender中的表单设计,是一个简单而又复杂的操作.简单的是它提供很多实用的工具,帮助用户实现更多的功能,复杂的是要对其进行排版设计,这就要看小伙伴们的个人要求高低了. 自定义数据输入表单时,你 ...