当前位置: 首页 > news >正文

斐波那契1(矩阵快速幂加速递推,斐波那契前n项平方和)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

Keven 特别喜欢斐波那契数列,已知 fib1=1fib_1=1fib1​=1,fib2=1fib_2=1fib2​=1,对于 n>=3n>=3n>=3,fibn=fibn−2+fibn−1fib_{n}=fib_{n-2}+fib_{n-1}fibn​=fibn−2​+fibn−1​,并且他想知道斐波那契前 nnn 项平方和是多少?

为了防止答案过大,请将最后的答案模 1e9+71e9+71e9+7


代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
struct jz
{ll m[2][2];
};
jz operator * (const jz &a,const jz &b)//*,矩阵乘法的重载运算符
{jz c;memset(c.m,0,sizeof c.m);for(ll i=0;i<2;i++){for(ll j=0;j<2;j++){for(ll k=0;k<2;k++){c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%mod;}}}return c;
}
jz pow(jz a,ll b)
{jz res;memset(res.m,0,sizeof res.m);for(ll i=0;i<2;i++)res.m[i][i]=1;while(b){if(b&1)res=res*a;b>>=1;a=a*a;}return res;
}
ll mul(ll a,ll b,ll mod)//乘法模
{a=a%mod;b=b%mod;ll res=0;while(b){if(b&1)res=(res+a)%mod;b>>=1;a=(a+a)%mod;}return res;
}
void solve()
{ll n;cin>>n;jz ans;ans.m[0][0]=1;//赋值,先通过递推公式,确定abcd的值,d为0,其他为1ans.m[0][1]=1;ans.m[1][0]=1;ans.m[1][1]=0;jz md=pow(ans,n);cout<<mul(md.m[0][0],md.m[0][1],mod);
}
int main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);ll t=1;while(t--)solve();return 0;
}

http://www.lryc.cn/news/145856.html

相关文章:

  • minikube mac 启动
  • 从零开始学习 Java:简单易懂的入门指南之查找算法及排序算法(二十)
  • 非煤矿山风险监测预警算法 yolov8
  • Ansible学习笔记(一)
  • 2024毕业设计选题指南【附选题大全】
  • Error: PostCSS plugin autoprefixer requires PostCSS 8 问题解决办法
  • pymongo通过oplog获取数据(mongodb)
  • MySQL数据备份与恢复
  • 基于ssm+vue汽车售票网站源码和论文
  • 【List】List集合有序测试案例:ArrayList,LinkedList,Vector(123)
  • 【javaweb】学习日记Day6 - Mysql 数据库 DDL DML
  • 使用 PyTorch C ++前端
  • 6、NoSQL的四大分类
  • (动态规划) 剑指 Offer 60. n个骰子的点数 ——【Leetcode每日一题】
  • ArrayList与顺序表
  • 【【萌新的STM32-22中断概念的简单补充】】
  • Java 中数据结构HashMap的用法
  • Request对象和response对象
  • 设计模式之桥接模式
  • pom.xml配置文件失效,显示已忽略的pom.xml --- 解决方案
  • 文本编辑器Vim常用操作和技巧
  • 【算法系列篇】位运算
  • 机器学习的测试和验证(Machine Learning 研习之五)
  • RNN循环神经网络
  • 安防视频监控/视频集中存储/云存储平台EasyCVR无法播放HLS协议该如何解决?
  • Docker技术--Docker的安装
  • 客户案例|MemFire Cloud助推应急管理业务,打造百万级数据可视化大屏
  • 蒲公英路由器如何设置远程打印?
  • 国产自主可控C++工业软件可视化图形架构源码
  • 【linux命令讲解大全】022.网络管理工具和命令概述