矩阵快速幂
文章平均质量分 83
远古小山
这个作者很懒,什么都没留下…
展开
-
矩阵快速幂入门 + 求Fibonacci数列
两矩阵相乘,朴素算法的复杂度是O(N^3)。如果求一次矩阵的M次幂,按朴素的写法就是O(N^3*M)。既然是求幂,不免想到快速幂取模的算法,a^b %m 的复杂度可以降到O(logb)。如果矩阵相乘是不是也可以实现O(N^3 * logM)的时间复杂度呢?答案是肯定的。先定义矩阵数据结构: struct Mat{ int mat[MaxN][MaxN];};O(N^转载 2016-10-03 23:01:30 · 575 阅读 · 0 评论 -
矩阵快速幂 ZOJ 2853 Evolution
题意:演变有n个物种,编号分别是1~n-1,每个物种的初始数量为d[i],i属于[0,n-1], 整个演变过程分为n个相同的”小演变“。一次”小演变“又有T个步骤:每个步骤形如 i j p[i][j] ;i,j是两个物种(i现在问,经过n次"小演变"后,第n个物种的数量。N 题解:这是经典的矩阵快速幂,重点在矩阵的构造。看下下面的例子。对于例子原创 2016-10-04 13:34:50 · 392 阅读 · 0 评论 -
矩阵快速幂 NOY 301
对于一个递推式,如果n太大,那么可以用矩阵快速幂把O(n)的复杂度降到O(logn).题意:求递推公式:f(x)=a*f(x-2)+b*f(x-1)+c,并给你f(1),f(2)的值,请求出f(n)的值,由于f(n)的值可能过大,求出f(n)对1000007取模后的值。1输出输出f(n)对1000007取模后的值。分析:f(x原创 2016-10-05 19:39:41 · 274 阅读 · 0 评论 -
hdu 5868 矩阵快速幂+burnside引理 +欧拉函数+乘法逆元
Different Circle Permutation 方法来自官方题解:https://async.icpc-camp.org/d/546-2016-icpc题意:题意:n 个点构成一个环,每个点可以染色为黑色或白色,要求任意两个相邻的点不能都是黑色,问在旋转同构意义下的染色数。题解:设 f(n)f(n) 为不考虑旋转同构时给原创 2016-10-06 23:00:42 · 569 阅读 · 0 评论