AcWing 1303. 斐波那契前 n 项和
AcWing 1303. 斐波那契前 n 项和
题意:
题解:
这个题解分析的太到位了
代码:
#include<iostream>
#include<cstring>#define ll long longusing namespace std;const int N=3;int n,m;
ll f1[N][N]={{1,1,1}};
ll A[N][N]={{0,1,0},{1,1,1},{0,0,1}
};void mul(ll a[N][N],ll b[N][N])
{ll c[N][N]={0};for(int i=0;i<3;i++)for(int j=0;j<3;j++)for(int k=0;k<3;k++)c[i][j]=(c[i][j]+a[i][k]*b[k][j]%m)%m;memcpy(a,c,sizeof c);
}void quick_pow(ll a[N][N],int k)
{ll E[N][N]={ //单位阵{1,0,0},{0,1,0},{0,0,1}};while(k){if(k&1) mul(E,a);mul(a,a);k>>=1;}memcpy(a,E,sizeof E);
}int main()
{cin>>n>>m;quick_pow(A,n-1);mul(f1,A);cout<<f1[0][2]<<endl;return 0;
}
AcWing 1303. 斐波那契前 n 项和相关推荐
- 算法提高课-数学知识-矩阵乘法-AcWing 1303. 斐波那契前 n 项和:矩阵乘法,快速幂,线性代数
题目分析 来源:acwing 分析: 先利用矩阵运算的性质将通项公式变成幂次形式,然后用快速幂的方法求解第 n项. 斐波那契数列的递推公式:f1=f2=1,fn=fn−2+fn−1(n≥3)f_1 = ...
- C语言——利用递归函数完成斐波拉契前n项的计算
C语言,利用函数的方法完成斐波拉契前n项的计算 #include<stdio.h> int fun(int n) {if(n>2){return fun(n-1)+fun(n-2); ...
- java求斐波那契前n项和_算法之斐波那契数列如何求第n个值与前n项和?(Java)...
斐波那契数列 指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n& ...
- c语言编程斐波那契前n项,c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)...
写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列:1,1,2,3,5,8...,当n大于等于3时,后一项为前面两项之和. 解:方法1:从斐波拉契数列的函数定义角度编程 #include in ...
- CCF NOI1064 计算斐波那契第n项
问题链接:CCF NOI1064 计算斐波那契第n项. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入n,编写程序输出斐波那契数列的第n项.其中斐波那契数列f(n)的定义 ...
- hdu1568斐波那契前4位
题意: 就是求斐波那契数,但是只要求输出前四位,(n<=100000000). 思路: 这个要用到斐波那契的公式和一些log的规律,直接打看着很乱,直接在网上偷张图片吧: ...
- python斐波那契前20递归_算法python实现经典递归问题(汉诺塔, 斐波那契数列,阶乘)...
经典递归 汉诺塔问题 背景故事 传说印度某间寺院有三根柱子,上串64个金盘.寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子:预言说当这些盘子移动完毕,世界就会灭亡.这个传说叫做梵天寺之塔问题( ...
- c语言求斐波那契数列n项以及前n项和
斐波那契数列的定义 f(n)=f(n-1)+f(n-2); (n>1) n=0; f(0)=0; n=1; f(1)=1 自定义函数 递归写法 fbi()此函数求x项的斐波那契数 ...
- 求解斐波那契第n项的几种解法(含矩阵乘法+快速幂) Python实现
斐波那契数列 首先我们来定义一下斐波那契数列: f(n)={0n = 01n = 1f(n−1)+f(n−2)n > 1f(n)= \begin{cases} 0 & \text {n ...
最新文章
- 递归实现牛顿法求整数平方根(原理: 给一个初始值(比如X1 = a/2)迭代求a的平方根,设定一个误差限,不断逼近a X1 = a/2 X2 = (X1+a/X1)/
- python小数输出01_python:格式化输出(上)
- 彻底理解Intel FPGA时序约束---最后总结(三)
- Mysql视图与数据备份
- spark dataFrame withColumn
- [css] 假如设计稿使用了非标准的字体,你该如何去实现它?
- navicat for mysql 13_Navicat for MySQL下载
- 关于x86、x86_64/x64、amd64和arm64/aarch64
- 机器学习基石-作业二-第10题分析
- 关于配置环境变量相关解答
- 华尔街英语学习软件_华尔街英语吧啦吧啦聊点啥:语言学习交流至上
- poj 3126 BFS
- 通过机房工作看软工之软工总结
- struts2笔记06-ServletXxxAware接口
- IDC预测:2021vCPE软硬件市场将达到30亿美元
- 歪门邪道破解Flash-SWF to AVI GIF Converter
- linux oracle client 安装,Instant Client 下载 适用于 Linux x86-64(64 位)
- 华为VLAN隔离配置
- 项目开发团队分配管理软件总结
- Python开发, 恶意病毒扫描
热门文章
- 出这样的题,出题人的良心确定不会痛吗?
- 这10个人,总是牛逼的无话可说
- oss多线程 上传_oss-android/ios-sdk 断点续传(多线程)
- openlayers地图旋转_OpenLayers的使用---- 一个完全免费开源的地图JS库
- java树算法_Java数据结构算法(三)树
- 读数据库遇到空就进行不下去_如何保证缓存与数据库的双写一致性?
- linux select读取节点数据失败_MySQL中覆盖索引查询和select*查询执行结果案例分析...
- 7-1 字母统计图 (10 分)(思路+详解)
- 岛屿类问题的广度优先深度优先双解法(Leetcode题解-Python语言)
- 卡尔曼_卡尔曼估计两步法