3070 Fibonacci 矩阵快速幂
来源:互联网 发布:php 双引号中转义字符 编辑:程序博客网 时间:2024/05/01 22:34
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int m=10000;int fib(int n){ int t[2][2]={1,1,1,0}; int p[2][2]; int a[2][2]={1,0,0,1}; int i,j,k; while(n) { if(n%2==1) { for(i=0;i<2;i++) for(j=0;j<2;j++) { p[i][j]=a[i][j]%m; a[i][j]=0; } for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++) a[i][j]=a[i][j]+p[i][k]*t[k][j]; } for(i=0;i<2;i++) for(j=0;j<2;j++) { p[i][j]=t[i][j]%m; t[i][j]=0; } for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++) t[i][j]=(t[i][j]+p[i][k]*p[k][j])%m; n=n>>1; } return a[0][1];}int main(){ int n; while(~scanf("%d",&n)) { if(n==-1) break; printf("%d\n",fib(n)%m); } return 0;}
0 0
- 3070Fibonacci{矩阵快速幂}
- 3070 Fibonacci 矩阵快速幂
- 【矩阵快速幂】Fibonacci
- Fibonacci 矩阵快速幂
- Fibonacci 矩阵快速幂
- Fibonacci (矩阵快速幂)
- Fibonacci 快速幂矩阵
- POJ 3070 Fibonacci 矩阵快速幂
- poj - 3070 - Fibonacci(矩阵快速幂)
- 矩阵快速幂 Fibonacci 3070 poj
- POJ 3070 Fibonacci (矩阵快速幂)
- poj 3070 Fibonacci (矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci 矩阵快速幂
- POJ 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- POJ-3070 Fibonacci 矩阵快速幂
- Fibonacci - POJ 3070 矩阵乘法快速幂
- sprintf函数的说明
- Reverse Integer
- RPG2.0战斗框架学习1
- 优秀的代码 vs. 糟糕的代码
- 黑马程序员——java高新技术——IO其他流对象
- 3070 Fibonacci 矩阵快速幂
- JDK5新特性:枚举(Enum)
- 提高工作效率的TXT转换为PDF方法
- [OpenMP] 怎么在Visual Studio上启用OpenMP
- 比较齐全的运算符正则表达式
- 升级到win10时VirtualBox和ie的两个小问题
- 打破Android应用65K方法数魔咒
- 悼念512汶川大地震遇难同胞——来生一起走
- Android 5.0 双卡短信处理