POJ 3070 Fibonacci 矩阵快速幂
2017-09-10 11:28
302 查看
原题链接
#include <iostream> #include <string.h> using namespace std; const int mod=1e4; int n; struct Mat{ int mat[2][2]; Mat(){memset(mat,0,sizeof(mat));} Mat operator *(Mat a){ Mat b=Mat(); for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) b.mat[i][j]=(b.mat[i][j]+(mat[i][k]*a.mat[k][j]))%mod; return b; } Mat operator ^(int k){ Mat e=Mat(); for(int i=0;i<2;i++) e.mat[i][i]=1; Mat p=e,q=*this; while(k){ if(k&1) p=p*q; k>>=1;q=q*q; } return p; } }; int main(){ Mat base=Mat(); base.mat[0][0]=base.mat[1][0]=base.mat[0][1]=1; while(cin>>n){ if(n==-1) break; if(n==0){cout<<0<<endl;continue;} Mat m=base^n; cout<<m.mat[0][1]<<endl; } return 0; }
相关文章推荐
- POJ 3070-Fibonacci(矩阵快速幂求斐波那契数列)
- poj - problem 3070 Fibonacci 【矩阵 +快速幂】
- poj 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵乘法快速幂)
- Fibonacci - POJ 3070 - 矩阵快速幂
- POJ 3070 Fibonacci (矩阵快速幂 Fibonacci数列新求法)
- POJ 3070 Fibonacci (已有斐波那规律_矩阵快速幂取模)
- Fibonacci - POJ 3070 矩阵乘法快速幂
- POJ-3070 Fibonacci 快速矩阵幂
- POJ 3070 Fibonacci 矩阵快速幂 .
- poj 3070 Fibonacci 【矩阵快速幂】
- POJ 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- (Relax 矩阵快速幂1.1)POJ 3070 Fibonacci(求第n个斐波那契数的后四位。n很大)
- poj -3070 Fibonacci (矩阵快速幂)
- poj 3070 Fibonacci 【矩阵快速幂 求第N个斐波那契数%1000】
- poj 3070 Fibonacci 矩阵快速幂
- poj 3070 Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci 【矩阵快速幂】
- poj 3070 Fibonacci 【矩阵快速幂】