题目地址:https://vjudge.net/problem/POJ-3070

题意:


斐波那契数列0  1 1....f[i]=f[i-1]+f[i-2],给定n(0 ≤ n ≤ 1,000,000,000)),求f[n]的后四位。

解题思路:


普通的数组肯定存不下了,这个时候就要用到矩阵快速幂了。

以下截图来自博客https://blog.csdn.net/zhangxiaoduoduo/article/details/81807338

ac代码:


#include <iostream>
#include <algorithm>
#include <string.h>
#include <ctype.h>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <fstream>
#define  maxn 1005
typedef long long ll;
const ll inf=1e+18;
using namespace std;
ll a1[4][4]={0},t[4][4]={0},res[4][4]={0};//f[n]=res[1][1]
void multi(ll a[][4],ll b[][4])
{ll temp[5][5]={0};for(ll i=1;i<=2;i++){for(ll j=1;j<=2;j++){for(ll k=1;k<=2;k++){temp[i][j]+=(a[i][k]*b[k][j])%10000;}}}for(ll i=1;i<=2;i++)for(ll j=1;j<=2;j++)a[i][j]=temp[i][j];
}
void pow(ll n)//t^(n-1)
{memset(res,0,sizeof(res));for(int i=1;i<=2;i++)res[i][i]=1;//单位矩阵,存t^(n-1)的结果while(n)//将快速幂换成矩阵快速幂{if(n&1)multi(res,t);multi(t,t);n>>=1;}
}
int main()
{//freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);ll n;while(scanf("%lld",&n)==1&&n!=-1){if(n==0){printf("0\n");continue;}a1[1][1] = 1,a1[1][2]=0, a1[2][1] = 0,a1[2][2]=0;//初始矩阵t[1][1] = 1, t[1][2] = 1, t[2][1] = 1, t[2][2] = 0;//转移矩阵初始化pow(n-1);multi(res,a1);//res存t^(n-1)*a1的结果printf("%lld\n",res[1][1]);}return 0;
}

【POJ3070】斐波那契数列f[n]的后四位,n达1e+9(矩阵快速幂模版题)相关推荐

  1. 斐波拉契数列前n项和 斐波拉契数列第n项

    此篇题解不为别的,纯属纪念,纪念一个已经且也许永远淡出我生活的人... 记不清是大二还是大三了,只记得在教四304实验室,你教我如何用矩阵快速幂来求解斐波拉契数列的第n项,然后考我怎么用类似的方法计算 ...

  2. 加强版斐波那契数列(矩阵快速幂)

    关于快速幂的讲解可以参见我的上一篇博客<快速幂> 题目链接:又见斐波那契 题目描述 这是一个加强版的斐波那契数列. 给定递推式 求F(n)的值,由于这个值可能太大,请对10 9+7取模. ...

  3. 斐波拉契数列python123_python计算机二级题目分类汇总

    知乎视频​www.zhihu.com 选择题:40 基本操作题:5 简单应用:10/15 综合应用:20 主要是对文本进行处理 基本操作题 format()函数 用符号填充 {序号:填充 对齐 宽度 ...

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

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

  5. HDU4549 M斐波那契数列 —— 斐波那契、费马小定理、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Li ...

  6. hdu 4549 M斐波那契数列(费马小定理 + 二分快速幂 + 矩阵快速幂)

    M斐波那契数列                                                                           Time Limit: 3000/1 ...

  7. c语言斐波那契数列_神奇的数列——斐波那契数列

    斐波那契数列之美 斐波那契是一位数学家,生于公元1170年,籍贯大概是比萨,卒于1240年后.1202年,他撰写了<珠算原理>(Liber Abaci)一书.他是第一个研究了印度和阿拉伯数 ...

  8. 趣学算法之斐波拉契数列实现

    1.斐波拉契数列 f(1) = 1; f(2) = 1; f(3) = f(1) + f(2);以此内推1 x = 1 f(x) = 1 x = 2f(x - 1) + f(x - 2) x > ...

  9. 我居然从一只猫身上学到了斐波那契数列

    猫的数学这么好 是有原因的 斐波那契数列(Fibonacci sequence) 是由数学家列昂纳多·斐波那契定义的 把它写成数列的形式是这样的: 1,1,2,3,5,8,13,21,34,55,89 ...

  10. 牛客题霸 [斐波那契数列] C++题解/答

    斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1). n<=39 题解: 斐波那契数列..递推的基础题目 众 ...

最新文章

  1. RunC 轻量级 容器运行工具 简介
  2. 学python要多少钱-学python去培训班要多少钱?
  3. MySql 里的IFNULL、NULLIF和ISNULL用法
  4. python3.4.4 配置opencv3.1 解决pip版本不够的问题
  5. hoj 1072 活动安排问题
  6. learn_Day14 内置函数补充、反射、初识面向对象
  7. C语言二分法求最小值解,C语言用二分法求方程的近似解的方法
  8. 【设计模式】命令模式
  9. spring mvc学习(27):处理数据模型--从表单到controller传输数据续
  10. 英语学习笔记2019-11-22
  11. hide your website's wordpress info/path/way
  12. js系列教程4-函数、函数参数全解
  13. (苹果Mac OSX系统)绿联USB无法连接网络解决方案
  14. 经济学原理曼昆第八版课后习题答案
  15. ad10搜索快捷键_ad快捷键有哪些 ad快捷键汇总
  16. 计算机word表格怎么求和,如何在Word中插入Excel自动汇总a求和表格,上班族必备技巧...
  17. python实现12306车票查询
  18. OSPF特殊区域及其他特性
  19. 华科计算机学院硕士武汉理工推免,学霸宿舍升级版!这个学院5个宿舍20名成员集体保研...
  20. java进程和ksoftirqd进程的CPU突然涨高的原因

热门文章

  1. VC通用控件自适应屏幕类
  2. 爬虫_4、requests的post方法以及json字符串处理
  3. 简单的php商城,简单的php商城
  4. linux系统基本特点分时,Linux操作系统四个优点.docx
  5. 数据库内获取准确的当前时间
  6. 完整的vue-cli3项目创建过程以及各种配置
  7. IE兼容性问题web.config设置
  8. javascript css 合并压缩SquishIt – The Friendly ASP.NET JavaScript and CSS Squisher
  9. Citrix Supportability Pack介绍
  10. PaaS平台OpenShift企业部署的“脑图”