题意:F[0] = a ,F[1] = b,F[n] = F[n-1] * F[n-2] ( n > 1 )
现在给出a, b, n,你能求出F[n]的值
想到点子上就很简单了,可当时做的时候都没有向找递推式的方向去思考
1.找F[n]的递推式

附:斐波那契数矩阵公式
 Fn+1   Fn        1    1
                     =             的n次方
 Fn     Fn-1       1     0

#include <bits/stdc++.h>
#define X 10005
#define inf 0x3f3f3f3f
#define PI 3.141592653589793238462643383
using namespace std;
typedef long long ll;
const int mod=1e9+7;
struct node
{ll e[2][2];
} f;
node Matrix(node a,node b)
{node ans;for(int i=0; i<2; ++i){for(int j=0; j<2; ++j){ans.e[i][j]=0;for(int k=0; k<2; ++k)if(a.e[i][k]&&b.e[k][j])//ans.e[i][j]=(ans.e[i][j]+(a.e[i][k]*b.e[k][j])%(mod-1))%(mod-1);  相等ans.e[i][j]=(ans.e[i][j]+(a.e[i][k]*b.e[k][j]))%(mod-1);}}return ans;
}
node Pow(node a,int n)
{node E;E.e[0][0]=E.e[1][1]=1;E.e[0][1]=E.e[1][0]=0;while(n){if(n&1) E=Matrix(E,a);a=Matrix(a,a);n/=2;}return E;
}
ll Pow_(ll a,ll n)
{ll ans=1;while(n){if(n&1)ans=ans*a%mod;a=a*a%mod;n/=2;}return ans%mod;
}
int main()
{ll a,b,n;while(scanf("%lld %lld %lld",&a,&b,&n)!=EOF){f.e[0][0]=f.e[0][1]=f.e[1][0]=1,f.e[1][1]=0;if(n==0){cout<<a<<endl;}else{f=Pow(f,n-1);ll x=f.e[1][0];ll y=f.e[0][0];printf("%lld\n",Pow_(a,x)*Pow_(b,y)%mod);}}return 0;
}

hdu4549 M斐波那契数列相关推荐

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

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

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

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

  3. hdu-4549 M斐波那契数列 nyoj - 1000

    运用费马小定理&&矩阵快速幂  求出 a , b 的个数 运用快速幂求解 a^num1 * b ^ num2 % MOD #include<stdio.h> #includ ...

  4. M斐波那契数列(HDU-4549)

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

  5. java 斐波拉_Java实现斐波那契数列

    斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&g ...

  6. 剑指offer:面试题10- I. 斐波那契数列

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 ...

  7. 用递归法计算斐波那契数列的第n项

     斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...

  8. 循环斐波那契数列_剑指offer #10 斐波那契数列

    (递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...

  9. 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?

    自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...

最新文章

  1. 数据结构 判断单链表是否有环 C
  2. 方法中的参数的五种形式
  3. 2019-12-03 有用的学术网站
  4. 19岁「天才少年」自制CPU!1200个晶体管,纯手工打造
  5. Flask练手项目之通讯录
  6. python paramiko并发_python paramiko 多线程批量执行指令及批量上传文件和目录
  7. web安全day20:今天讲清楚漏洞和木马的区别,最后一个实验演示通过445端口控制服务器
  8. 解决最新版chrome不能安装IDM插件IDMGCExt.crx的问题
  9. 《上海悠悠接口自动化平台》-5.测试计划与定时任务
  10. javascript指定日期增加自然月份(有闰年2月判断)
  11. 苹果手机连wifi很慢-解决方案
  12. 如何让自己的电脑内外网同时用?
  13. 非形式逻辑(04)因果关系和推理
  14. keil startup_stm32f10x_hd.s编译报错
  15. Laravel验证器的使用
  16. 龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式
  17. Visual Studio Code For Markdown Guide
  18. ActiveMQ 无法启动 提示端口被占用,永远无法杀掉进程
  19. 使用室内地图提升体育场体验的4种方式
  20. Linux 系统调用深思:从原理到实战

热门文章

  1. [转] Deep Learning(深度学习)学习笔记整理系列
  2. 苹果开始整治App Store恶意抄袭现象
  3. 数字证书及在WCF中的应用
  4. 情商(实践版本,丹尼尔.戈尔曼)---阅读记录
  5. JSTL解析——001
  6. MySQL体系结构和存储引擎概述
  7. u32、u16、u8 数据类型
  8. 复制虚拟机网卡eth0变eth1
  9. 如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话
  10. Netty 高性能特性