矩阵快速幂
DS-K
这个作者很懒,什么都没留下…
展开
-
UVA 11149 Power of Matrix
题目链接:http://acm.hust.edu.cn/vjudge/problem/41898 题意:给出一个矩阵A,求A+A^2+A^3+....A^k。 思路: A+A^2+A^3+....A^k = ( E + A^(k/2) ) * ( A + A^2 + A^3+....A^(k/2) ) k为偶数 A+A^2+A^3+....A^k = ( E + A^(k原创 2016-07-25 16:00:38 · 228 阅读 · 0 评论 -
HDU 5860 cjj's string game
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5863 题意:用k个不同的字符,形成两个长度为n的字符串中,可以有多少种构建两个字符串的方法,使得所有的连续子串中,对应的两串相同的最大子串长度为过m。 思路:建立转移矩阵,对于两串前i个字符,有两种情况:一种是前面连续相同最大子串长度没有达到过m,可以0~m-1任意一种原创 2016-08-22 10:04:01 · 376 阅读 · 0 评论 -
HDU 4965 Fast Matrix Calculation
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4965 题意:给一个矩阵A(n*k规模),矩阵B(k*n)规模,现在求矩阵(A*B)^(n*n)矩阵中所有元素的和。n 思路: n*n的矩阵肯定不能做矩阵乘法快速幂,会超时,把式子变一下型。 (A*B)^(n*n) = A* (B*A)^(n*n-1) *B , B*A是一个k*原创 2016-07-20 20:52:19 · 218 阅读 · 0 评论 -
HDU 4990 Reading comprehension
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4990 题意:给出n,m,求结果。 while(scanf("%d%d",&n,&m)!=EOF) { ans=0; for(i=1;i { if(i&1)ans=(ans*2+1)%m; else ans=ans*2%m;原创 2016-07-20 20:44:59 · 264 阅读 · 0 评论 -
HDU 5015 233 Matrix
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 题意:给出a1,0 a2,0 a3,0...an,0 ,而且(a0,1 = 233,a0,2 = 2333,a0,3 = 23333...),以及ai,j = ai-1,j +ai,j-1( i,j ≠ 0),求an,m(n ≤ 10,m ≤ 109)。 思原创 2016-07-20 20:35:33 · 194 阅读 · 0 评论 -
UVA 1386 Cellular Automaton
题目链接:http://acm.hust.edu.cn/vjudge/problem/38668 题意:有一个长度为n的圈,里面有n个数,每一次圈里的每个数会变成与它的距离不超过d的数之和(包括自己),求k次后这个圈里的n个数各是多少。 思路:k很大,只能矩阵快速幂计算,很容易可以构造出来转移矩阵,a1,a2,a3,...an n*n的转移矩阵第i列转移ai去下一个状态,那么原创 2016-07-27 23:13:31 · 480 阅读 · 0 评论 -
FZU 1911 Construct a Matrix
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1911 题意:F(n)是斐波那契数列1, 1, 2, 3, 5, 8, 13, 21, 34... S(n) = (F1 + F2 + … + Fn) % m。 现在要构造一个S(n)*S(n)的矩阵,只含0,1,-1,而且每一行每一列的元素和不能一样。 思路:首先S(n)很容原创 2016-07-25 17:03:03 · 566 阅读 · 0 评论 -
UVA 10518 How Many Calls?
题目链接:http://acm.hust.edu.cn/vjudge/problem/24146 题意:已知f(0),f(1),fi = fi-1 + fi-2,问用递归式计算fn需要调用函数多少次? 思路:调用fn自己算一次,在fn里面还需要调用fn-1 和 fn-2,所以把他们的次数加一起就是总次数。 所以Fi = Fi-1 + Fi-2 + 1 , F0 = F1 =原创 2016-07-25 16:46:14 · 286 阅读 · 0 评论 -
HDU 4686 Arc of Dream
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686 题意:fn = ∑aibi ( 0 a 0 = A0 a i = a i-1*AX+AY b 0 = B0 b i = b i-1*BX+BY 给出n,求fn对1,000,000,007的模 思路:写出相邻项的转移式, f(n+1) = f(n) +原创 2016-07-25 16:41:58 · 216 阅读 · 0 评论 -
HDU 4549 M斐波那契数列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4549 题意:M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗? 思路:写一下前几项,发现指数其实就是斐波那契数列,Fn = a^原创 2016-07-25 16:28:00 · 304 阅读 · 0 评论 -
UVA 10870 Recurrences
题目链接:http://acm.hust.edu.cn/vjudge/problem/28800 题意:f(n) = a1f(n − 1) + a2f(n − 2) + a3f(n − 3) + . . . + adf(n − d), for n > d, 给出a1~ad,f1~fd,求f(n)。 思路:一个简单的矩阵快速幂,设定好转移矩阵直接乘即可。 #inclu原创 2016-07-25 16:21:23 · 225 阅读 · 0 评论 -
UVA 10655 Contemplation! Algebra
题目链接:http://acm.hust.edu.cn/vjudge/problem/41740 题意:给出a+b和ab的值,n,求a^n+b^n。 思路:n可能很大,所以直接考虑矩阵快速幂。 ( a^n + b^n )( a + b ) = a^(n+1) + b^(n+1) + ab( a^(n-1) + b^(n-1) ) a^(n+1) + b^(n+1) = (原创 2016-07-25 16:10:55 · 241 阅读 · 0 评论 -
UVA 11741 Ignore the Blocks
题目链接:http://vjudge.net/problem/UVA-11741 题意:给一个n*m的棋盘,有k个坏格子,现在用1*2的骨牌覆盖全部的好格子,问有多少种方案。m 思路:由于n很大 , k范围很小,我们按照坏格子所在的行分阶段,相邻的两个坏格子之间的好格子用矩阵快速幂去计算。 可以维护每个状态的方案数,即一个数组(每行最多16个状态,0~15)。当前状态的行号是原创 2016-11-04 21:41:22 · 326 阅读 · 0 评论