关于矩阵快速幂的用法总结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 ...
随机推荐
- java 获取当天(今日)零点零分零秒
两种方法 一种得到的是时间戳,一种得到是日期格式: 1.日期格式的 Calendar calendar = Calendar.getInstance(); calendar.setTime(new D ...
- SNF快速开发平台2019-APP移动端实际应用效果
废话不多说,直接上效果图: 这是我们移动端框架基本程序+组件库+标准业务程序,当然了还需要配合上我们的代码生成器则更如虎添翼.https://www.cnblogs.com/spring_wang/p ...
- 关于python协程中aiorwlock 使用问题
最近工作中多个项目都开始用asyncio aiohttp aiomysql aioredis ,其实也是更好的用python的协程,但是使用的过程中也是遇到了很多问题,最近遇到的就是 关于aiorwl ...
- JS 的加密库简介
作为前端,数据提交到后台之前,重要的数据要进行加密一下,虽然已经有 https 等技术,但是增加一道前端的加密还是相对更安全的.虽然,前端的加密很容破解,但是有总比没有强. 尤其是涉及到用户名和密码, ...
- Win10添加右键在此处打开命令行
通过添加注册表项,实现右击“在此处打开命令行功能” 注册表位置:HKEY_CLASSES_ROOT\Directory\Background\shell\ win10系统用标识右键菜单打开命令行的键, ...
- [转]MySQL中timestamp数据类型的特点
原文地址:https://www.imooc.com/article/16158 在使用MySQL数据库时有很多常见的误解,其中使用int类型来保存日期数据会提高数据读取的效率就是比较常见的一个误解. ...
- 【gulp】gulp + browsersync 构建前端项目自动化工作流
什么是 gulp? gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.gulp.js 是基于 node.js 构建的,利用 node.js 流的威力,你可以快速构 ...
- windows下IDEA的terminal配置bash命令
使用git-bash.exe会单独打开一个窗口,而我们希望是在终端内置的命令行.这里我使用bash.exe 在IDEA中,打开settings,设置相应的bash路径 settings–>Too ...
- Unable to install SQL Server (setup.exe), VS Shell installation has failed with exit code 1638.
The problem is likely that there's a newer version of the Visual C++ Redistributable than SQL Server ...
- 让织梦内容页arclist标签的当前文章标题加亮显示
很多人在用织梦做站的时候,会用到在当前栏目页面,给当前栏目标题使用指定样式如标题加亮,或者放个背景图.这是一个很常用和实用的功能,比如在导航页面,标识当前在浏览哪个栏目.如下图: 但是有些时候,我们在 ...