题意:求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 斐波那契数列相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 算法(1)斐波那契数列

    1.0 问题描述 实现斐波那契数列,求第N项的值 2.0 问题分析 斐波那契数列最简单的方法是使用递归,递归和查表法同时使用,可以降低复杂度. 根据数列特点,同时进行计算的数值其实只有3个,所以可以使 ...

  7. NOIP模拟题 斐波那契数列

    题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...

  8. 剑指offer_第7题_斐波那契数列

    题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...

  9. 面试官问你斐波那契数列的时候不要高兴得太早

    增加内容 递归改进版 矩阵快速幂解法 通项表达式解法 列表法 斐波那契数列应用 前言 假如面试官让你编写求斐波那契数列的代码时,是不是心中暗喜?不就是递归么,早就会了.如果真这么想,那就危险了. 递归 ...

最新文章

  1. linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法
  2. winform调用webservice增删查改_教你分别用数据库与云函数实现“增删查改”
  3. java 指针_java多线程学习二十二:::java中的指针
  4. 【数据结构】—顺序表的插入、删除、查找操作
  5. .net core 引用jar_Python一键转Jar包,Java调用Python新姿势!
  6. android 魅族 webview,魅族 Flyme 系统出现大面积应用闪退问题,提供临时解决方法...
  7. ps显示计算机内存不足怎么办,PS常见问题——内存不足,解决办法!
  8. php解析mht,php解析mht文件转换成html的实例详解
  9. 南阳理工ACM 题目73 比大小
  10. D-Link DP-LINK302打印服务器WIN7版软件
  11. C语言中汉字的存储和输出
  12. (root用户)bash: ./xx: Permission denied解决方法
  13. su - xxx Could not create session 无法su切换用户
  14. NAS实现家用服务器
  15. 二进制与十进制互相转换的计算方法(个人向)
  16. 【题解】codeforces786A Berzerk
  17. 微信浏览器useragent
  18. 在建设和培养技术团队,要有前瞻性
  19. C#版二维坐标点按行排序
  20. torch.nn.Embedding()中的padding_idx参数解读

热门文章

  1. 本地计算机策略无法建立管理单元,我的本地安全策略用不了!打开管理工具的本地安全策略管理单元初始化 爱问知识人...
  2. 小波分析理论与matlabr2007实现_HHT变换基本理论
  3. 全国统筹区code与名称
  4. 详解浏览器 428 状态码 428 Precondition Required
  5. CentOS下配置redis允许远程连接
  6. 校运会计算机专业口号,校运动会口号(精选80条)
  7. 抽奖砍价之类以均值为基础的波动算法 demo版本
  8. mycat核心配置详解(schema.xml配置)
  9. 工作总结 项目中如何处理重复提交问题
  10. RADIO廉价冗余阵列radio0 dadio1 radio10/01 radio5 radio6