Jzoj4627 斐波那契数列
题意:求Fib(n)
此题渗水,这里讲一种不用矩阵的方法
令f[n]=Fib(n)
我们假设k=n/2
那么久有以下递推式:
若n-k%2=1
f[n]=f[k]*f[k]+f[k+1]*f[k+1]
否则
f[n]=f[k]*f[k+1]+f[k+1]*(f[k]+f[k+1])
边界特判一下就好了,复杂度lg n
#include<stdio.h>
#define L long long
L n,N;
void Fib(L x,L& a,L& b){if(x<5) {a=b=1ll;return;}if(x<7) {a=2ll;b=1ll;return;}L i,j,k=x/2; Fib(x-k,i,j);if((x-k)&1){a=(i*i+j*j)%N;b=(i*j+j*(i-j))%N;}else {a=((i+j)*i+i*j)%N;b=(i*i+j*j)%N;}
}
inline L ans(L x){if(x<3) return 1;L a,b; Fib(x,a,b);if(x&1ll) return (a*a+b*b)%N;else return ((a+b)*a+a*b)%N;
}
int main(){scanf("%lld%lld",&n,&N);printf("%lld\n",(N+ans(n+1))%N);
}
转载于:https://www.cnblogs.com/Extended-Ash/p/9477314.html
Jzoj4627 斐波那契数列相关推荐
- 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), 其中 ...
- 用递归法计算斐波那契数列的第n项
斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...
- 循环斐波那契数列_剑指offer #10 斐波那契数列
(递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...
- 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?
自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...
- 算法(1)斐波那契数列
1.0 问题描述 实现斐波那契数列,求第N项的值 2.0 问题分析 斐波那契数列最简单的方法是使用递归,递归和查表法同时使用,可以降低复杂度. 根据数列特点,同时进行计算的数值其实只有3个,所以可以使 ...
- NOIP模拟题 斐波那契数列
题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...
- 剑指offer_第7题_斐波那契数列
题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...
- 面试官问你斐波那契数列的时候不要高兴得太早
增加内容 递归改进版 矩阵快速幂解法 通项表达式解法 列表法 斐波那契数列应用 前言 假如面试官让你编写求斐波那契数列的代码时,是不是心中暗喜?不就是递归么,早就会了.如果真这么想,那就危险了. 递归 ...
最新文章
- linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法
- winform调用webservice增删查改_教你分别用数据库与云函数实现“增删查改”
- java 指针_java多线程学习二十二:::java中的指针
- 【数据结构】—顺序表的插入、删除、查找操作
- .net core 引用jar_Python一键转Jar包,Java调用Python新姿势!
- android 魅族 webview,魅族 Flyme 系统出现大面积应用闪退问题,提供临时解决方法...
- ps显示计算机内存不足怎么办,PS常见问题——内存不足,解决办法!
- php解析mht,php解析mht文件转换成html的实例详解
- 南阳理工ACM 题目73 比大小
- D-Link DP-LINK302打印服务器WIN7版软件
- C语言中汉字的存储和输出
- (root用户)bash: ./xx: Permission denied解决方法
- su - xxx Could not create session 无法su切换用户
- NAS实现家用服务器
- 二进制与十进制互相转换的计算方法(个人向)
- 【题解】codeforces786A Berzerk
- 微信浏览器useragent
- 在建设和培养技术团队,要有前瞻性
- C#版二维坐标点按行排序
- torch.nn.Embedding()中的padding_idx参数解读
热门文章
- 本地计算机策略无法建立管理单元,我的本地安全策略用不了!打开管理工具的本地安全策略管理单元初始化 爱问知识人...
- 小波分析理论与matlabr2007实现_HHT变换基本理论
- 全国统筹区code与名称
- 详解浏览器 428 状态码 428 Precondition Required
- CentOS下配置redis允许远程连接
- 校运会计算机专业口号,校运动会口号(精选80条)
- 抽奖砍价之类以均值为基础的波动算法 demo版本
- mycat核心配置详解(schema.xml配置)
- 工作总结 项目中如何处理重复提交问题
- RADIO廉价冗余阵列radio0 dadio1 radio10/01 radio5 radio6