题意

  用矩阵乘法求fibonacci数列的第n项。

Solution

  矩乘入门题啊,题目把题解已经说的很清楚里= =。

  矩乘其实很简单,通过自己YY或者是搜索对于一个递推公式求出它所对应的矩阵,然后套个快速幂就可以迅速求解第n项。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<vector>
 5 #include<queue>
 6 #include<cstring>
 7 #define mp make_pair
 8 #define pb push_back
 9 #define first fi
10 #define second se
11 #define pw(x) (1ll << (x))
12 #define sz(x) ((int)(x).size())
13 #define all(x) (x).begin(),(x).end()
14 #define rep(i,l,r) for(int i=(l);i<(r);i++)
15 #define per(i,r,l) for(int i=(r);i>=(l);i--)
16 #define FOR(i,l,r) for(int i=(l);i<=(r);i++)
17 #define eps 1e-9
18 #define PIE acos(-1)
19 #define cl(a,b) memset(a,b,sizeof(a))
20 #define fastio ios::sync_with_stdio(false);cin.tie(0);
21 #define lson l , mid , ls
22 #define rson mid + 1 , r , rs
23 #define ls (rt<<1)
24 #define rs (ls|1)
25 #define INF 0x3f3f3f3f
26 #define LINF 0x3f3f3f3f3f3f3f3f
27 #define freopen freopen("in.txt","r",stdin);
28 #define cfin ifstream cin("in.txt");
29 #define lowbit(x) (x&(-x))
30 #define sqr(a) a*a
31 #define ll long long
32 #define ull unsigned long long
33 #define vi vector<int>
34 #define pii pair<int, int>
35 #define dd(x) cout << #x << " = " << (x) << ", "
36 #define de(x) cout << #x << " = " << (x) << "\n"
37 #define endl "\n"
38 using namespace std;
39 //**********************************
40 const int mod=1e4;
41 typedef vector<vi> mat;
42 //**********************************
43 mat mul(mat& a,mat& b)
44 {
45     mat c(2,vi(2));
46     rep(i,0,2)rep(j,0,2)rep(k,0,2)
47     c[i][j]+=(a[i][k]*b[k][j]),c[i][j]%=mod;
48     return c;
49 }
50 mat qpow(mat a,int b)
51 {
52     mat c(2,vi(2));
53     c[0][0]=c[1][1]=1;c[1][0]=c[0][1]=0;
54     while(b){
55         if(b&1)c=mul(c,a);
56         a=mul(a,a);
57         b>>=1;
58     }
59     return c;
60 }
61 //**********************************
62 int main()
63 {
64     int n;
65     while(cin>>n,~n){
66         mat v(2,vi(2));v[0][0]=1;v[0][1]=1;v[1][0]=1;v[1][1]=0;
67         v=qpow(v,n);
68         cout<<v[1][0]<<endl;
69     }
70     return 0;
71 }

View Code

转载于:https://www.cnblogs.com/klaycf/p/9682980.html

斐波那契数列矩阵快速幂相关推荐

  1. HDU4549 M斐波那契数列(矩阵快速幂+费马小定理)

    Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) ...

  2. HDU 4549 M斐波那契数列(矩阵快速幂费马小定理)

    ps:今天和战友聊到矩阵快速幂,想到前几天学长推荐去刷矩阵专题,挑了其中唯一一道中文题,没想到越过山却被河挡住去路... 题目链接:[kuangbin带你飞]专题十九 矩阵 R - M斐波那契数列 T ...

  3. 奶牛家族(斐波那契数列的快速幂乘矩阵算法)

    TX面试题: 已知有一头牛4年后开始生小牛,一次只能生一只,问20年后一共有多少头牛? 这种问题就是简单的递归: 这头奶牛在第四年后能不断生子直到第二十年,其子出生4年后又能不断生子-- 代码如下: ...

  4. YBTOJ:斐波拉契(矩阵快速幂)

    文章目录 题目描述 题目描述 代码 题目描述 题目描述 关键在于如何转化为本题的题目... 设 y=(1-根号5)/2$$ 再令: A(n)=xn +++ yn 通过尝试可以发现,A其实就是一个1,3 ...

  5. 蓝桥杯历届试题----斐波那契(矩阵快速幂)

    问题描述 斐波那契数列大家都非常熟悉.它的定义是: f(x) = 1 -. (x=1,2) f(x) = f(x-1) + f(x-2) -. (x>2) 对于给定的整数 n 和 m,我们希望求 ...

  6. 牛客15666 又见斐波那契(矩阵快速幂)

    链接:https://ac.nowcoder.com/acm/problem/15666 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  7. [ZJOI2011]细胞——斐波那契数列+矩阵加速+dp

    Description bzoj2323 Solution 题目看起来非常复杂. 本质不同的细胞这个条件显然太啰嗦, 是否有些可以挖掘的性质? 1.发现,只要第一次分裂不同,那么互相之间一定是不同的( ...

  8. 构造类斐波那契数列矩阵

    题目:HDU4565 题意:给定正整数a,b,n,m,求的值. 其中.   分析:依据题意有,所以有结论:,尽管含有根号,可以知道等号右边是 整数.那么我们构造递推关系:,那么本方程的特征根就是:和. ...

  9. 又见斐波那契数列(矩阵构造+矩阵快速幂)

    //补题~~~ 链接:https://ac.nowcoder.com/acm/problem/15666 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...

最新文章

  1. Jenkins(二)
  2. 【C++】Visual Studio教程(七) -修改 Visual Studio
  3. 2009编程语言排名
  4. 计算机网络考试目的是什么,计算机网络基本原理考试大纲 -、课程的性质及其设置的目的与要求.doc...
  5. recv函数返回0_函数VLOOKUP与LOOKUP的PK,大战一触即发 Excel神技能!
  6. 网络流20+4题解题报告(已更前20题)
  7. 解决SurfaceView调用setZOrderOnTop(true)遮挡其他控件的问题
  8. java 访问 usb
  9. 软件是怎么控制硬件的?
  10. Windows 录音机录制电脑声音、route 双网卡设置内外网共用
  11. 【附源码】计算机毕业设计SSM小区宠物管理系统
  12. 电子设计大赛-运算放大器
  13. 多轴联动编程C语言,全国数控技能大赛―复杂部件造型、多轴联动编程与加工_...
  14. 撰写MLA格式的毕业论文,需留意下边几个文件格式标准
  15. 2015年电商行业十大发展趋势分析预测
  16. Dockerfile文件编写官方文档
  17. 复正弦信号、实数信号的DFT
  18. 无盘疑难杂症的处理和网络的设置(转)
  19. 信息论:数据压缩和信源编码
  20. 2022 新版本c++安装opencv库的简单操作教程

热门文章

  1. Android中怎样使用Navicat可视化查看sqllite的数据库(查看db文件)
  2. Android中使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信
  3. Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
  4. spring框架如何调用异步方法?快进来学学吧
  5. 【Python】编程笔记3
  6. 跑步碰撞大数据,走进悦跑圈的数据“大观园”
  7. 到喜啦携手神策数据,大数据加速产品服务的创新整合发展
  8. 用户及用户组管理(week1_day4)--技术流ken
  9. 失战于知识付费,会员与智能硬件将助蜻蜓FM打赢下半场战争?
  10. Python之IO模型