矩阵快速幂
文章平均质量分 75
冷月残星
这个作者很懒,什么都没留下…
展开
-
矩阵快速幂(递推关系,UVA 10870)
很基础的矩阵快速幂,但自己写的题还不够多,所以写代码的时候会磕磕巴巴,写完后有一些小错误还得再debug。 #include using namespace std; typedef long long ll; ll D,N,M; struct jz { ll n,m; ll A[20][20]; void I(ll x) { mem原创 2016-12-06 14:15:35 · 282 阅读 · 0 评论 -
矩阵快速幂(细胞自动机,LA 3704)
朴素的矩阵乘法O(n^3)会超时。 但是因为这个矩阵是循环矩阵,根据循环矩阵的性质: 循环矩阵*循环矩阵=循环矩阵 所以只用算出第一行,然后根据循环矩阵的性质就可以递推出下一行,进而得到整个循环矩阵。 时间复杂度降为O(n^2)。 如果遇到一些模板题却超时就要好好想一想这道题跟模板题到底哪里不一样了,进而才能发现优化的方法。 很多东西都是靠想出来的。 代码 #inc原创 2016-12-06 15:57:15 · 335 阅读 · 0 评论 -
矩阵快速幂(CRB and Puzzle,HDU 5411)
如果A是邻接矩阵,且i与j之间有A[i][j]条直接相连的道路。 那么A^k就是k长路矩阵,i与j之间有A^k[i][j]条k长的路。 题目要求小于等于M的道路的个数,对2015取模。 即∑∑∑A^k[i][j]%2015 1 考虑计算出一个矩阵B[k],其中i与j之间有B[k][i][j]条小于等于k长的道路。 那么B[k+1]=B[k]*A+A 但是每次矩阵乘法之后都要加原创 2017-07-22 18:10:21 · 320 阅读 · 0 评论 -
矩阵快速幂,动态规划(cjj's string game,HDU 5863)
一开始考虑后缀数组。 但有两个原因感觉不行。 1、没有一个给定的串让我来处理成后缀数组。 2、发现n很大,1e9,但m很小才10。时空完全无法承受。 然后考虑计算出来。 很容易想到让第一个串随便组合,然后尝试让第二个串满足它。 对于任意一个串,要求另一个串满足它的方案数都是一样多的。 满足的条件只关乎每个下标上的字符是否相等。显然和具体字符无关,只和字符的种数有关,所以方原创 2017-07-23 22:21:52 · 408 阅读 · 0 评论