HDU 4549 M斐波那契数列
数论:当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斐波那契数列相关推荐
- hdu 4549 M斐波那契数列(费马小定理 + 二分快速幂 + 矩阵快速幂)
M斐波那契数列 Time Limit: 3000/1 ...
- hdu 4549 M斐波那契数列(矩阵乘法+降幂公式)
Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) ...
- HDU 4549 M斐波那契数列(矩阵快速幂费马小定理)
ps:今天和战友聊到矩阵快速幂,想到前几天学长推荐去刷矩阵专题,挑了其中唯一一道中文题,没想到越过山却被河挡住去路... 题目链接:[kuangbin带你飞]专题十九 矩阵 R - M斐波那契数列 T ...
- 斐波那契数列大数的压位c语言,HDU 1568 Fibonacci(大数前4位)
分析:x=1234567.求其前四位数: log10(x)=log10(1.234567)+6. 所以1.234567=10^(log10(x)-6). 1234 =(int) 10^(log10(x ...
- hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
解题思路: 一只母猪生下第二头后立马被杀掉,可以这样想即,生下第二头便被杀掉,可以看成母猪数量没变 第一天 1 第二天 2 第三天 3 :第一头生第二头后杀掉还是1头,第二头再加上第二头生下的,一共三 ...
- ACM常用数列(斐波那契数列、卡特兰数、贝尔数、斯特灵数)
斐波那契数列:任意一个数是其前两位数只和,即f(i)=f(i-1)+f(i-2),f(1)=f(2)=1 该数列也满足黄金分割比例,所以又成为黄金分割数列 相关题目链接:Fibbonacci Numb ...
- 找规律——一个新的斐波那契数列
题目:Fibonacci Again 题目链接:Problem - 1021 (hdu.edu.cn) Problem Description There are another kind of Fi ...
- java 斐波拉_Java实现斐波那契数列
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&g ...
- 剑指offer:面试题10- I. 斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 ...
最新文章
- php商城的购物车功能,PHP实现添加购物车功能
- Spring杂谈 | 什么是ObjectFactory?什么是ObjectProvider?
- SQL Server 影响dbcc checkdb的 8 种因素
- 2021,如何找到适合自己的圈子?
- Heroku和Java –从新手到初学者,第2部分
- OpenCV-Python bindings是如何生成的(1)
- CVPR 2021 | 姿态可控的语音驱动
- 消息队列解耦是骗小孩儿的
- 网络服务家族图谱:一张图带您了解华为云网络服务大家族!【华为云分享】
- centos8 配置 dns_如何在Ubuntu 18.04上设置DNS名称服务器 | linux资讯
- 在公司具备这三个条件,就准备好跳槽吧
- MyBatis核心配置文件详解
- 12.04 安装svn
- 一图看懂编程语言迁移模式:终点站是Python、Go、JS
- CCS安装教程——学习DSP的第一步
- CEM计算电磁学 -- Lecture 1 学习笔记 (1) --- 麦克斯韦方程、波动方程
- 登录注册判断+Mysql
- python的matplotlib库
- arXiv,30 岁生日快乐!它的诞生,始于一个​被塞满的邮箱
- 浏览器缓存Cache