51Nod 1242 斐波那契数列的第N项(矩阵快速幂)
来源:互联网 发布:上海质检院待遇知乎 编辑:程序博客网 时间:2024/05/31 11:03
题目链接
大神博客
里面提到
最后一个式子展开
所有经过n-1次幂之后,直接输出第一个元素即可
矩阵快速幂和乘法快速幂大同小异
#include<iostream>#include<cstdio>#include<math.h>#include<cstring>#include<algorithm>#include<queue>#include<set>#include<vector>using namespace std;const int mod=1000000009;typedef struct node{long long m[2][2];}node;node cheng(node n1,node n2){node sum;for(int i=0;i<=1;i++){for(int j=0;j<=1;j++){sum.m[i][j]=0;for(int k=0;k<=1;k++){sum.m[i][j]+=n1.m[i][k]*n2.m[k][j];sum.m[i][j]%=mod;}}}return sum;}node f(node a,long long n){node sum=a;while(n){if(n&1)sum=cheng(sum,a);a=cheng(a,a);n>>=1;}return sum;}int main(){long long n;cin>>n;if(n==1) {cout<<1;return 0;}if(n==2){cout<<1;return 0;}node a={1,1,1,0};node no=f(a,n-2);cout<<no.m[0][0]%mod;return 0;}
阅读全文
1 0
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项【矩阵快速幂】
- 51nod 1242 斐波那契数列的第N项 (矩阵快速幂)
- 【51Nod】1242 - 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- [51NOD]-1242 斐波那契数列的第N项 [矩阵快速幂]
- 51 nod 1242 斐波那契数列的第N项 矩阵快速幂
- 51Nod 1242 斐波那契数列的第N项(矩阵快速幂)
- 51Nod-斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项(矩阵幂运算)
- 矩阵快速幂1242斐波那契数列的第N项
- 1242 斐波那契数列的第N项(矩阵快速幂)
- 1242 斐波那契数列的第N项(矩阵快速幂)
- 【51NOD1242】斐波那契数列的第N项(矩阵快速幂)
- 51nod--1242 斐波那契数列第N项 (矩阵乘法优化)
- 斐波那契数列的第N项 矩阵快速幂
- 斐波那契数列的第N项(矩阵快速幂模板)
- 1242 斐波那契数列的第N项 运用矩阵快速幂来求解斐波那契数列问题
- HDU 1686
- 《MySQL入门很简单》学习笔记(16)之第16章数据备份与还原(关键词:MySQL/数据备份/数据还原)
- 9.9 天平问题 2720
- BZOJ:3441 乌鸦喝水
- 异步请求的方式
- 51Nod 1242 斐波那契数列的第N项(矩阵快速幂)
- mysql事务处理用法与实例详解
- docker容器下运行tomcat、部署应用
- 代码整洁之道(1)
- 51NOD 1089 后缀数组 或 manacher
- Linux文件查看命令笔记
- scrapy爬虫实例w3school报错ImportError: No module named w3school.items
- LoadRunner测试工具
- MVC设计模式