
矩阵连乘
凌阡陌
随心而为,我自逍遥
展开
-
hdu3117
非常好的一道题目,包括了f[n]=f[n-1]+f[n-2]的递推计算、前4位、后四位值的计算。前39位利用递推即可。39位之后,求前四位利用公式,s=(1/sqrt(5))*(1+sqrt(5))^i,d.xxx=10^log10(s)-(int)log10(s)+3; d即为前4位的值后四位的值利用矩阵连乘求得。但值得注意的是求后四位的时候可能出现123,三位的情况,因为倒数第原创 2012-07-21 10:33:31 · 309 阅读 · 0 评论 -
hit2255矩阵连乘求Fibonacci的和
1 1 0 s(n-1)s(n)( 0 p q ) * ( f(n) ) = ( f(n+1) ) 0 1 0 f(n-1) f(n)注意不能因为m[0][2]=0在求结果的时候就不乘它。另外这个题应该用long long。。。还有,因为在题中有quickpow(s-1) 所以应该分为3中情况。。。原创 2012-07-22 20:06:08 · 272 阅读 · 0 评论 -
hdu1250
只能用大数了,这个代码是以8位为一组的。#include #include using namespace std;int s[10000][356]={0};int solve(){ int i,j; s[1][1]=1; s[2][1]=1; s[3][1]=1; s[4][1]=1; for(i=5;i<10000;i++){原创 2012-07-21 11:19:23 · 232 阅读 · 0 评论 -
hit2060
值得注意的是在求矩阵的时候,将b+2和a+1看做一个整体来处理,不要处理了两遍另一方面,虽然b>a, 但是由于这9位数是求余之后的,所以有可能是负数,负数求余公式(ans%Mod+Mod)%Mod#include #include using namespace std;#define MAX 2#define Mod 1000000000typedef struct{原创 2012-07-21 20:49:21 · 280 阅读 · 0 评论 -
hdu1588 Fibonacci and 矩阵连乘
题目描述:实际上是求f(b)+f(k+b)+f(2*k+b)+......+f((n-1)*k+b)0 1 f(b-1)f(b)1 1 * f(b)= f(b+1)故令A=0 1 则f(b)=A^b; f(k+b)=A^(k+b); 1 1所以题目改为求A^b+A^(k+b)+A^(2*k+b)+......+A^((n原创 2012-07-23 16:52:34 · 274 阅读 · 0 评论