51nod 1242 斐波那契数列第N项
来源:互联网 发布:mix2 知乎 编辑:程序博客网 时间:2024/06/05 22:42
传送门--斐波那契数列第N项
矩阵连乘
快速幂取模
#include<iostream>#include<cstdio>using namespace std;const int maxn=2;struct Matrix{ long long int m[maxn][maxn];};long long int n;Matrix P={1,1, 1,0};Matrix I={1,0, 0,1};Matrix Matrixmul(Matrix a,Matrix b){ int i,j,k; Matrix c; for(int i=0;i<maxn;i++) { for(int j=0;j<maxn;j++) { c.m[i][j]=0; for(int k=0;k<maxn;k++) { c.m[i][j]=c.m[i][j]+(a.m[i][k]*b.m[k][j])% 1000000009; } c.m[i][j]%= 1000000009; } } return c;}Matrix quickpow(long long int n){ Matrix m=P,b=I; while(n>=1) { if(n&1) { b=Matrixmul(b,m); } n=n>>1; m=Matrixmul(m,m); } return b;}int main(){ while(scanf("%lld",&n)!=-1) { if(n==0) printf("0\n"); else if(n==-1) break; else{ Matrix x=quickpow(n-2); printf("%lld\n",(x.m[0][0]+x.m[0][1])% 1000000009);} } return 0;}
阅读全文
1 0
- 51nod 1242 1242 斐波那契数列的第N项
- 20140911 【 初等数论 】 51nod 1242 . 斐波那契数列的第N项
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项【矩阵快速幂】
- 51nod 1242 斐波那契数列的第N项 (矩阵快速幂)
- 51nod--1242 斐波那契数列第N项 (矩阵乘法优化)
- 51Nod 1242 斐波那契数列的第N项
- 51Nod-1242-斐波那契数列的第N项
- 51nod:1242 斐波那契数列的第N项
- 【51Nod】1242 - 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项(O(logn)求递推式)
- 51nod 1242 斐波那契数列的第N项
- 51nod 1242 斐波那契数列的第N项
- 51nod 1242 斐波那契数列第n项
- 51NOD 1242 斐波那契数列的第N项
- [51NOD]-1242 斐波那契数列的第N项 [矩阵快速幂]
- 【51Nod】1242 斐波那契数列的第N项
- 滚粗记
- 超智能体,tensorflow
- 树分治基础模板以及树的重心(poj1741 tree)
- 主席树(hdu2665)
- 数论学习(题库有很多啦。)
- 51nod 1242 斐波那契数列第N项
- 树链剖分基础模板(BZOJ1036[ZJOI2008]树的统计Count)
- 树链剖分模板题(luogu3384 【模板】树链剖分)
- Java源码阅读之ArrayList
- 建图最短路同余(luogu2662 vijos1054 xjoi2157)(bzoj2118)
- 左偏树
- 欧拉函数性质证明 : n所有约数的欧拉函数和等于n
- 冒泡排序法(Bubble Sorting)
- contest 15