51nod 1242 斐波那契数列的第N项(矩阵快速幂)
来源:互联网 发布:海关出口数据查询 编辑:程序博客网 时间:2024/05/22 09:42
1242 斐波那契数列的第N项
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
收藏
关注
斐波那契数列的定义如下:
F(0) = 0
F(1) = 1
F(n) = F(n - 1) + F(n - 2) (n >= 2)
(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, ...)
给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可。
Input
输入1个数n(1 <= n <= 10^18)。
Output
输出F(n) % 1000000009的结果。
Input示例
11
Output示例
89
菲薄纳妾数列(对我就是要这样写,不服你来打我啊),唉,我他喵的一看到这题就高潮了,直接一发公式,连题目的数据大小都没有看就直接交了,唉,简直蠢到家了,其实这题很简单,因为数据大小的限制所以必须要用矩阵快速幂,公式一发就水过去了。
如果对矩阵快速幂有不懂的可以看一下这位菊苣的文章,(来来来,日常膜菊苣~):http://blog.csdn.net/y990041769/article/details/22311889
搞懂以后就上代码吧~:
#include <cstdio> #include <iostream> #include <vector> using namespace std; typedef long long ll; typedef vector<long long> vec; typedef vector<vec> mat; const ll N = 1000000009; mat mul(mat a,mat b) //矩阵乘法 { mat c(a.size(),vec(b[0].size())); for(ll i=0;i<a.size();i++) { for(ll k=0;k<b.size();k++) { for(ll j=0;j<b[0].size();j++) c[i][j] = ( c[i][j] + a[i][k] * b[k][j] ) % N; } } return c; } mat solve_pow(mat a,ll n) //快速幂 { mat b(a.size(),vec(a.size())); for(ll i=0;i<a.size();i++) b[i][i]=1; while(n>0) { if(n & 1) b=mul(b,a); a=mul(a,a); n >>= 1; } return b; } ll n; void solve() { mat a(2,vec(2)); while(~scanf("%lld",&n) && n!=-1) { a[0][0]=1,a[0][1]=1; a[1][0]=1,a[1][1]=0; a=solve_pow(a,n); printf("%lld\n",a[1][0]); } } int main() { solve(); return 0; }
0 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项(矩阵幂运算)
- 51nod--1242 斐波那契数列第N项 (矩阵乘法优化)
- 1242 斐波那契数列的第N项(矩阵快速幂)
- 1242 斐波那契数列的第N项(矩阵快速幂)
- 矩阵快速幂1242斐波那契数列的第N项
- 【51NOD1242】斐波那契数列的第N项(矩阵快速幂)
- 斐波那契数列的第N项(矩阵快速幂模板)
- 51nod 1242 斐波那契数列的第N项(O(logn)求递推式)
- 斐波那契数列的第N项(1≤n≤10^18 矩阵快速幂)
- Struts2 chap02-03总结-Action设置数据
- sqlite3移植到ARM开发板
- 达内学习笔记——零初始化
- jackjson的使用
- linux内核ioremap映射的透切理解
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- Majority Element
- POJ3320尺取法
- Winpcap网络开发库入门
- 34. Search for a Range
- webservice利用cxf框架编写日志拦截器和自定义拦截器
- 学习日记20160830
- Toast 及 定时器
- Linux创建快捷方式