1242 斐波那契数列的第N项
输入1个数n(1 <= n <= 10^18)。
输出F(n) % 1000000009的结果。
11
89 矩阵快速幂
/*
data:2018.5.13
author:gsw
link:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242
*/
#define ll long long
#define IO ios_with_sync(false); #include<iostream>
#include<algorithm>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std; ll mod=;
class Matrix
{
public:
ll matrix[][];
};
Matrix a,b,ans; void init()
{
a.matrix[][]=;a.matrix[][]=;a.matrix[][]=;a.matrix[][]=;
b.matrix[][]=;b.matrix[][]=;b.matrix[][]=;b.matrix[][]=;
memset(ans.matrix,,sizeof(ans.matrix));
ans.matrix[][]=;ans.matrix[][]=;
}
Matrix mul(Matrix a1,Matrix a2)
{
Matrix ans;
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
ans.matrix[i][j] = ;
for(int k = ; k <; k++)
{
ans.matrix[i][j] +=a1.matrix[i][k]*a2.matrix[k][j]%mod;
ans.matrix[i][j]%=mod;
}
}
}
return ans;
}
void fast_mod(ll n)
{
while (n>)
{
if(n&)ans=mul(ans,a);
a=mul(a,a);
n=n>>;
}
} int main()
{
ll n;
scanf("%lld",&n);
init();
fast_mod(n-);
b=mul(b,ans);
cout<<b.matrix[][]<<endl;
//main();
}
1242 斐波那契数列的第N项的更多相关文章
- 51 Nod 1242 斐波那契数列的第N项(矩阵快速幂模板题)
1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) ...
- 51Nod——T 1242 斐波那契数列的第N项
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 ...
- (矩阵快速幂)51NOD 1242斐波那契数列的第N项
斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, ...
- 51nod 1242 斐波那契数列的第N项
之前一直没敢做矩阵一类的题目 其实还好吧 推荐看一下 : http://www.cnblogs.com/SYCstudio/p/7211050.html 但是后面的斐波那契 推导不是很懂 前面讲的挺 ...
- 51Nod 1242 斐波那契数列的第N项(矩阵快速幂)
#include <iostream> #include <algorithm> using namespace std; typedef long long LL; ; ; ...
- 51nod 1242 斐波那契数列的第N项——数学、矩阵快速幂
普通算法肯定T了,所以怎么算呢?和矩阵有啥关系呢? 打数学符号太费时,就手写了: 所以求Fib(n)就是求矩阵 | 1 1 |n-1 第一行第一列的元素. | 1 0 | 其实学过线代 ...
- python脚本10_打印斐波那契数列的第101项
#打印斐波那契数列的第101项 a = 1 b = 1 for count in range(99): a,b = b,a+b else: print(b) 方法2: #打印斐波那契数列的第101项 ...
- 斐波那契数列的第N项
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242 题目: 斐波那契数列的定义如下: F(0) = 0 ...
- Python初学者笔记:打印出斐波那契数列的前10项
问题:斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.- ...
随机推荐
- tp3.2控制器返回时关闭子窗口刷新父页面
我的项目操作都是在子页面弹窗中执行,当我操作成功或失败时,都要关闭当前子窗口,刷新父页面: $this->assign('jumpUrl',"javascript:window.par ...
- win 10 把秘钥清掉之后查不到秘钥怎么办
因工作需要系统要激活,跟这网上说的 使用 slmgr.vbs /upk 命令卸载密钥.但是在第2步的时候 slmgr /ipk ****-****-****-**** 无法安装.. 问题现在 ...
- 通过HttpServletResponseWrapper修改response输出流
在项目中遇到一个问题,需要对接口返回的数据进行加密给前端.项目中的controller一般都是返回一个实体form,重写的一个视图解析器继承ModelAndViewResolver,对返回的form转 ...
- C++——模板
1.参数类型 template <typename T> void f1(T&);//实参必须是左值 f1(i);//对 f1(ci);//对,T的类型是const int f1( ...
- java多线程学习笔记(三)
java多线程下的对象及变量的并发访问 上一节讲到,并发访问的时候,因为是多线程,变量如果不加锁的话,会出现“脏读”的现象,这个时候需要“临界区”的出现去解决多线程的安全的并发访问.(这个“脏读”的现 ...
- VS2008中编译运行MFC应用程序时,出现无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
解决方法:"工具"->"选项"->"项目和解决方案"->"VC++目录",在可执行文件栏中加上如 ...
- 从一个url地址到最终页面渲染完成,发生了什么?
从一个url地址到最终页面渲染完成,发生了什么? 1.DNS 解析 : 将域名地址解析为IP地址 浏览器DNS缓存 系统DNS缓存 路由器DNS缓存 网络运营商DNS缓存 递归搜索: www.baid ...
- KiCAD差分布线
KiCAD差分布线方法 KiCAD在进行差分布线的时候,会自动按照网路名称生成差分对,所以差分对的名称必须是以_P_N或+/-结束,这样才能找到一对差分对,比如说CAN网络,可以定义为CAN_P/CA ...
- vue 父子组件数据双向绑定
父组件 <find-search v-model="searchshow"></find-search> 子组件 props: { value: { typ ...
- Python中 将数据插入到Word模板并生成一份Word
搬运出处: https://blog.csdn.net/DaShu0612/article/details/82912064