[POJ3070]Fibonacci(矩阵快速幂)
来源:互联网 发布:java技术面试常见问题 编辑:程序博客网 时间:2024/05/23 22:35
题目描述
传送门
题意
求Fibonacci第n项模10000的值
题解
题面中就给了一种十分优越的矩阵做法。
之前的做法又多加了一个矩阵,改姿势了。
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int Mod=10000;int n;struct hp{int a[3][3];}st,m,ans;inline hp cheng(hp a,hp b){ hp ans; memset(ans.a,0,sizeof(ans.a)); for (int i=1;i<=2;++i) for (int j=1;j<=2;++j) for (int k=1;k<=2;++k) ans.a[i][j]=(ans.a[i][j]+a.a[i][k]*b.a[k][j]%Mod)%Mod; return ans;}inline hp matrix_fast_pow(hp a,int p){ hp ans=st; for (;p;p>>=1,a=cheng(a,a)) if (p&1) ans=cheng(ans,a); return ans;}int main(){ while (~scanf("%d",&n)) { if (n==-1) return 0; if (!n) { printf("0\n"); continue; } memset(st.a,0,sizeof(st.a)); for (int i=1;i<=2;++i) st.a[i][i]=1; m.a[1][1]=m.a[1][2]=m.a[2][1]=1; m.a[2][2]=0; ans=matrix_fast_pow(m,n); printf("%d\n",ans.a[1][2]%Mod); }}
0 0
- POJ3070 - Fibonacci (矩阵快速幂)
- poj3070 Fibonacci (矩阵快速幂)
- [POJ3070]Fibonacci(矩阵快速幂)
- poj3070 Fibonacci(矩阵快速幂)
- poj3070 Fibonacci(矩阵快速幂)
- poj3070 Fibonacci 矩阵快速幂
- poj3070 Fibonacci 矩阵快速幂
- POJ3070 - Fibonacci - 矩阵快速幂
- POJ3070 Fibonacci(矩阵快速幂)
- poj3070 Fibonacci(矩阵快速幂)
- poj3070 Fibonacci(矩阵快速幂)
- POJ3070--Fibonacci--矩阵快速幂
- Poj3070 Fibonacci (矩阵快速幂)
- POJ3070 Fibonacci(矩阵快速幂)
- 矩阵快速幂 求Fibonacci数列poj3070
- 【poj3070】Fibonacci (矩阵乘法+快速幂)
- poj3070--Fibonacci(矩阵的快速幂)
- 【poj3070】Fibonacci——矩阵快速幂
- URL请求对参数前端JS加密,后台JAVA解密
- solr4.7新建core
- Redis 列表(List)
- spark-streaming入门(一)
- Android视图切换动画库SwitchLayout的简单使用
- [POJ3070]Fibonacci(矩阵快速幂)
- 使用存储过程
- Android 头部设置上下滚动的消息列表 TextView (TextSwitcher运用)
- 老版本IE下td没有内容为空时不显示边框的解决办法
- java.lang.OutOfMemoryError: unable to create new native thread
- TensorFlow 从入门到精通(六):tensorflow.nn 详解
- Ant工具介绍
- 【CSS】——三大基础选择器以及优先级
- iOS学习之——prepareForSegue:sender: