
矩阵快速幂
SC.ldxcaicai
我很菜=_=
展开
-
2018.09.25 poj3070 Fibonacci(矩阵快速幂)
传送门矩阵快速幂板题,写一道来练练手。这一次在poj做题总算没忘了改万能库。代码:#include<iostream>#include<cstdio>#define mod 10000#define A a[0][0]#define B a[0][1]#define C a[1][0]#define D a[1][1]using namespace s...原创 2018-09-25 09:47:41 · 143 阅读 · 0 评论 -
bzoj4818: [Sdoi2017]序列计数(矩阵快速幂优化dp)
传送门题意简述:问有多少长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数,且其中至少有一个数是质数,答案对201704082017040820170408取模(n≤1e9,m≤2e7,p≤100)(n\le1e9,m\le2e7,p\le100)(n≤1e9,m≤2e7,p≤100)。思路:首先因为只需要是ppp的倍数,因此可以看成全局和对ppp取模为000方案数...原创 2019-02-11 12:45:45 · 285 阅读 · 0 评论 -
常系数齐次线性递推算法学习
文章目录简介求法矩阵快速幂特征多项式一些定义Cayley-Hamilton定理递推优化简介定义:设有数列{an}满足递推关系an=∑i=1kan−ifi\{a_n\}满足递推关系a_n=\sum\limits_{i=1}^{k}a_{n-i}f_i{an}满足递推关系an=i=1∑kan−ifi,则称该数列满足kkk阶齐次线性递推关系。求法现在我们从最基础的矩阵快速幂开始一步一步...原创 2019-02-09 16:32:02 · 1374 阅读 · 0 评论 -
2018.11.08 NOIP模拟 景点(倍增+矩阵快速幂优化dp)
传送门显然只要所有点的权值加起来是0就一定有一组合法解。然后当成树随便构造就行了。至于非树边全部赋值为0就行。代码原创 2018-11-08 23:10:03 · 165 阅读 · 0 评论 -
2018.10.23 bzoj1297: [SCOI2009]迷路(矩阵快速幂优化dp)
传送门矩阵快速幂优化dp简单题。考虑状态转移方程:f[time][u]=∑f[time][v]f[time][u]=\sum f[time][v]f[time][u]=∑f[time][v]把一个点拆成9个来转换边长,然后根据题意模拟连边就行了。最后用矩阵快速幂优化一下转移就能过啦。代码:#include&lt;bits/stdc++.h&gt; using namespace ...原创 2018-10-23 20:19:47 · 212 阅读 · 0 评论 -
2018.10.22 bzoj1009: [HNOI2008]GT考试(kmp+矩阵快速幂优化dp)
传送门f[i][j]f[i][j]f[i][j]表示从状态“匹配了前i位”转移到“匹配了前j位”的方案数。这个东西单次是可以通过跳kmp的fail数组得到的。考虑到每次都是一样的就可以用矩阵快速幂优化一波。代码:#include<bits/stdc++.h>using namespace std;int n,m,mod,fail[21];bool vis[21][10]...原创 2018-10-22 23:27:05 · 161 阅读 · 0 评论 -
2018.10.19 NOIP模拟 硬币(矩阵快速幂优化dp)
传送门不得不说神仙出题人DZYODZYODZYO出的题是真的妙。f[i][j][k]f[i][j][k]f[i][j][k]表示选的硬币最大面值为iii最小面值不小于jjj,总面值为kkk时的选法总数。然后有f[i][l][k1+k2]=∑f[i][j][k1]∗f[j][l][k2]f[i][l][k1+k2]=\sum f[i][j][k1]*f[j][l][k2]f[i][l][k1+...原创 2018-10-19 19:06:24 · 183 阅读 · 0 评论 -
2018.10.09 ZYH的斐波那契数列(线段树+矩阵快速幂)
描述ZYH最近研究数列研究得入迷啦!现在有一个斐波拉契数列(f[1]=f[2]=1,对于n>2有f[n]=f[n-1]+f[n-2]),但是斐波拉契数列太简单啦,于是ZYH把它改成了斐波拉契的前缀和的数列{Si}(S[1]=1,对于n>1,有S[n]=S[n-1]+f[n]),接下来ZYH要在{Si}数列上面做一些操作。1.修改: 将数列中下标在[l,r]区间内的数加上v2....原创 2018-10-09 23:43:06 · 396 阅读 · 0 评论 -
2018.10.16 uoj#340. 【清华集训2017】小 Y 和恐怖的奴隶主(矩阵快速幂优化dp)
传送门一道不错的矩阵快速幂优化dpdpdp。设f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示前iii轮第iii轮还有jjj个一滴血的,kkk个两滴血的,lll个三滴血的。显然是可以从f[i−1]f[i-1]f[i−1]转移过来的。但是仔细一想,这个递推关系在i=1i=1i=1~nnn的时候都是一样的,于是把后面三个状压上矩阵快速幂优化就行了。直接转是O...原创 2018-10-16 16:03:38 · 271 阅读 · 0 评论 -
2018.10.09 NOIP模拟 路途(递推+矩阵快速幂优化)
传送门签到题。(考试的时候写挂爆0)令AiA_iAi表示邻接矩阵的iii次幂。于是就是求Al+Al+1+...+ArA_l+A_{l+1}+...+A_rAl+Al+1+...+Ar。然而快速幂200次会挂掉。因此我们把其变成Al∗(A0+...+Ar−l)A_l*(A_0+...+A_{r-l})Al∗(A0+...+Ar−l)后面的直接预处理,这样一次快速幂+一次矩阵...原创 2018-10-11 23:49:22 · 236 阅读 · 0 评论 -
2018.09.28 hdu5434 Peace small elephant(状压dp+矩阵快速幂)
传送门看到n的范围的时候吓了一跳,然后发现可以矩阵快速幂优化。我们用类似于状压dp的方法构造(1(1(1<<m)∗(1m)*(1m)∗(1<<m)m)m)大小的矩阵。然后用快速幂转移。代码:#include<bits/stdc++.h>#define mod 1000000007#define N 128#define ll long long...原创 2018-09-28 16:56:48 · 238 阅读 · 0 评论 -
2018.09.27 bzoj2510: 弱题(概率dp+循环矩阵优化)
传送门简单概率dp。显然每次转移的式子可以用一个矩阵表示出来:这个是循环矩阵。因此只用维护第一行快速幂一波就行了。代码:#include<bits/stdc++.h>#define N 1005using namespace std;int n,m,K,a[N];double b[N];struct Matrix{double val[N];}ans,tmp;...原创 2018-09-27 22:08:21 · 186 阅读 · 0 评论 -
2018.09.27 hdu5564Clarke and digits(数位dp+矩阵快速幂)
传送门好题啊。我只会写l,rl,rl,r都很小的情况(然而题上并没有这种数据范围)。但这个dp转移式子可以借鉴。我们用f[i][j][k]f[i][j][k]f[i][j][k]表示当前在第i位,模7余j,当前位是k。显然有f[i+1][([j∗10+l)f[i+1][([j*10+l)f[i+1][([j∗10+l)%7][l]+=f[i][j][k]7][l]+=f[i][j][k]...原创 2018-09-27 21:35:49 · 229 阅读 · 0 评论 -
2018.09.26 bzoj5221: [Lydsy2017省队十连测]偏题(数学推导+矩阵快速幂)
传送门由于没有考虑n&lt;=1的情况T了很久啊。这题很有意思啊。考试的时候根本不会,骗了30分走人。实际上变一个形就可以了。推导过程有点繁杂。直接粘题解上的请谅解。不得不说这个推导很妙。然后就可以矩阵快速幂优化了。代码:#include&lt;bits/stdc++.h&gt;#define ll long longusing namespace std;...原创 2018-09-26 20:13:31 · 234 阅读 · 0 评论 -
bzoj2085: [Poi2010]Hamsters(hash+矩阵快速幂)
传送门题意:给定n个长度总和不超过1e5的字符串,求一个最短的母串,使所有字符串的出现次数之和=m 这n个字符串保证不互相包含,n≤200思路:由于保证字符串两两不相互包含。因此我们可以考虑dpdpdp。fi,jf_{i,j}fi,j表示所有字符串出现次数之和为iii,结尾的字符串为第jjj个整个字符串的最短长度。然后可以枚举字符串转移。发现可以写成矩阵转移的形式然后用矩阵快速幂优...原创 2019-07-13 22:55:35 · 221 阅读 · 0 评论