关于矩阵快速幂的用法总结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 ...
随机推荐
- 关键词提取算法TextRank
很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank. ...
- 初尝 nginx
第一次尝试用 nginx,记录下几个简单命令: // 启动 start nginx // 测试并设置配置文件 nginx -t -c conf\nginx.conf // 修改配置文件后重载 ngin ...
- 【原创 Hadoop&Spark 动手实践 6】Spark 编程实例与案例演示
[原创 Hadoop&Spark 动手实践 6]Spark 编程实例与案例演示 Spark 编程实例和简易电影分析系统的编写 目标: 1. 掌握理论:了解Spark编程的理论基础 2. 搭建 ...
- Android中APK签名工具之jarsigner和apksigner详解
一.工具介绍 jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验 ...
- pilicat-dfs 霹雳猫-分布式文件系统
pilicat-dfs 霹雳猫-分布式文件系统 一种可以将网站图片或上传的文件,进行分布式存放的服务,可自动复制到多台物理机器,可满足高可用和负载均衡 已编译好的程序包 http://git.osch ...
- Intellij 高亮显示与选中字符串相同的内容
如下图所示,我的是 2018,不同版本,Schema 可能要 Save As一下
- JavaWeb过滤器.监听器.拦截器-原理&区别(转)
1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的 ...
- Java多线程系列——计数器 CountDownLatch
简介: CountDownLatch 是一个非常实用的多线程控制工具类,通常用来控制线程的等待,它可以让某个线程等待直到倒计时结束 CountDownLatch 提供了两个主要的方法,await(). ...
- vscode圣诞帽
今天打开vscode,偶然发现左下角的圣诞帽子 vscode版本:
- centos图形界面,vncserver
yum -y groupinstall "Server with GUI" RHEL7 安装图形界面1. 以root角色运行以下命令来安装TigerVNC server yum i ...