UVA 10229 Modular Fibonacci (矩阵乘法+快速幂)
来源:互联网 发布:yes风淘宝客程序下载 编辑:程序博客网 时间:2024/04/28 17:27
题目:http://uva.onlinejudge.org/external/102/10229.pdf
题意:给你n和m,求出Fibonacci数列的第n项F(n)模2^m。
分析:由于n<=2 147 483 647,直接递推打表会超时。用矩阵快速幂比较好~
代码:
#include <iostream>#include <cstdio>#include <cmath>using namespace std;struct Matrax{long long mat[2][2];}U,F;long long MOD;void init(){U.mat[0][0]=1;U.mat[0][1]=0;U.mat[1][0]=0;U.mat[1][1]=1;F.mat[0][0]=0;F.mat[0][1]=1;F.mat[1][0]=1;F.mat[1][1]=1;} Matrax multi(Matrax a,Matrax b){Matrax ans;int i,j,k;for(i=0;i<2;i++){for(j=0;j<2;j++){ans.mat[i][j]=0;for(k=0;k<2;k++)ans.mat[i][j]+=a.mat[i][k]*b.mat[k][j];ans.mat[i][j]%=MOD; }}return ans;}Matrax kpow(int n){Matrax ans=U,p=F;while(n){if(n&1)ans=multi(ans,p);n>>=1;p=multi(p,p); }return ans;}int main(){init();int n,m;while(scanf("%d%d",&n,&m)!=EOF){MOD=1LL<<m;Matrax ans=kpow(n);printf("%d\n",ans.mat[1][0]);}return 0;}
0 0
- UVA 10229 Modular Fibonacci (矩阵乘法+快速幂)
- UVA - 10229 - Modular Fibonacci (矩阵快速幂 + fibonacci)
- uva 10229 - Modular Fibonacci(矩阵快速幂)
- UVa 10229 Modular Fibonacci (矩阵快速幂求斐波那契)
- UVA 10229 Modular Fibonacci
- UVA - 10229 Modular Fibonacci
- UVa:10229 Modular Fibonacci
- uva 10229 - Modular Fibonacci
- UVa 10229 - Modular Fibonacci
- uva 10229Modular Fibonacci
- 【poj3070】Fibonacci (矩阵乘法+快速幂)
- Fibonacci - POJ 3070 矩阵乘法快速幂
- Fibonacci数列(矩阵乘法快速幂)
- Fibonacci数列(矩阵乘法快速幂)
- poj 3070 Fibonacci + 矩阵乘法(矩阵快速幂)
- UVa 10229 - Modular Fibonacci(数论,规律)
- 10299 Problem A: Modular Fibonacci(斐波那契的矩阵快速幂)
- UVA10299- Modular Fibonacci(斐波那契数列+矩阵快速幂)
- MVVM架构介绍(转)
- tomcat下中文乱码的问题
- oc中的类别
- C++ const
- 杭电hdu_1465_不容易系列之一
- UVA 10229 Modular Fibonacci (矩阵乘法+快速幂)
- uva 10070 Camel trading
- phpstorm和firefox协同调试web(html)+php语句(或web(html)跳转到php语句)
- JUnit单元测试
- (四十八)Quartz2D引擎进阶
- C++primer(第五版)9.3.4节,9.3.5节,9.3.6节练习答案
- js中的数值精度问题
- zoj 1832 file fragmentation
- (记录) sizeclass+autolayout 瞬间让你的工作变的简单轻松,真的会爱上.