数论:当gcd(x,m)=1时,x^(m-1) mod m=1,

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
const int mod = 1000000006;
const int mod1= 1000000007;
struct node
{long long a,b,c,d;
}org;
node pows(int m)//n^m
{node ans,tmp;ans.a=1;ans.b=0;ans.c=0;ans.d=1;if(m>1){tmp=pows(m>>1);ans.a=(tmp.a*tmp.a+tmp.b*tmp.c)%mod;ans.b=(tmp.a*tmp.b+tmp.b*tmp.d)%mod;ans.c=(tmp.c*tmp.a+tmp.d*tmp.c)%mod;ans.d=(tmp.c*tmp.b+tmp.d*tmp.d)%mod;}tmp=ans;if(m&1){tmp.a=(ans.a*org.a+ans.b*org.c)%mod;tmp.b=(ans.a*org.b+ans.b*org.d)%mod;tmp.c=(ans.c*org.a+ans.d*org.c)%mod;tmp.d=(ans.c*org.b+ans.d*org.d)%mod;}return ans=tmp;
}
long long  re_pows(int a,int n)//递归快速乘幂
{if(n==0) return 1;long long t=re_pows(a,n>>1);long long ans=(t*t)%mod1;if(n&1) ans=(ans*a)%mod1;return ans;
}
int main()
{int a,b,m;org.a=0;org.b=1;org.c=1;org.d=1;while(cin>>a>>b>>m){node tmp=pows(m);long long ans;ans=re_pows(a,tmp.a);ans=(ans*re_pows(b,tmp.b))%mod1;cout<<ans<<endl;}return 0;
}

View Code

转载于:https://www.cnblogs.com/qijinbiao/archive/2013/05/19/3086873.html

HDU 4549 M斐波那契数列相关推荐

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

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

  2. hdu 4549 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斐波那契数列(矩阵快速幂费马小定理)

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

  4. 斐波那契数列大数的压位c语言,HDU 1568 Fibonacci(大数前4位)

    分析:x=1234567.求其前四位数: log10(x)=log10(1.234567)+6. 所以1.234567=10^(log10(x)-6). 1234 =(int) 10^(log10(x ...

  5. hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)

    解题思路: 一只母猪生下第二头后立马被杀掉,可以这样想即,生下第二头便被杀掉,可以看成母猪数量没变 第一天 1 第二天 2 第三天 3 :第一头生第二头后杀掉还是1头,第二头再加上第二头生下的,一共三 ...

  6. ACM常用数列(斐波那契数列、卡特兰数、贝尔数、斯特灵数)

    斐波那契数列:任意一个数是其前两位数只和,即f(i)=f(i-1)+f(i-2),f(1)=f(2)=1 该数列也满足黄金分割比例,所以又成为黄金分割数列 相关题目链接:Fibbonacci Numb ...

  7. 找规律——一个新的斐波那契数列

    题目:Fibonacci Again 题目链接:Problem - 1021 (hdu.edu.cn) Problem Description There are another kind of Fi ...

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

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

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

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

最新文章

  1. php商城的购物车功能,PHP实现添加购物车功能
  2. Spring杂谈 | 什么是ObjectFactory?什么是ObjectProvider?
  3. SQL Server 影响dbcc checkdb的 8 种因素
  4. 2021,如何找到适合自己的圈子?
  5. Heroku和Java –从新手到初学者,第2部分
  6. OpenCV-Python bindings是如何生成的(1)
  7. CVPR 2021 | 姿态可控的语音驱动
  8. 消息队列解耦是骗小孩儿的
  9. 网络服务家族图谱:一张图带您了解华为云网络服务大家族!【华为云分享】
  10. centos8 配置 dns_如何在Ubuntu 18.04上设置DNS名称服务器 | linux资讯
  11. 在公司具备这三个条件,就准备好跳槽吧
  12. MyBatis核心配置文件详解
  13. 12.04 安装svn
  14. 一图看懂编程语言迁移模式:终点站是Python、Go、JS
  15. CCS安装教程——学习DSP的第一步
  16. CEM计算电磁学 -- Lecture 1 学习笔记 (1) --- 麦克斯韦方程、波动方程
  17. 登录注册判断+Mysql
  18. python的matplotlib库
  19. arXiv,30 岁生日快乐!它的诞生,始于一个​被塞满的邮箱
  20. 浏览器缓存Cache

热门文章

  1. tar 备份时如何保持权限
  2. 11.3 free:查看系统内存信息
  3. html语言table,HTML table 标签
  4. linux内核分析期末,Linux内核分析作业
  5. 技术解密|阿里云多媒体 AI 团队是凭借什么拿下 CVPR2021 5冠1亚的?
  6. 针对《等保2.0》要求的云上最佳实践——网络安全篇
  7. 无人化运维离我们有多远?阿里智能化运帷平台深度揭秘
  8. 漫谈C#编程语言在游戏领域的应用
  9. 角色动作系统概述:战斗、3C相关
  10. 文档扫描OCR识别-1(python)