AcWing 1303. 斐波那契前 n 项和
输出斐波那契数列前 n 项和 对m取摸的结果
#include<bits/stdc++.h>
#define LL long long
#define N 3
using namespace std;
int n,m;
void cal(int c[],int a[],int b[][N])
{
int temp[N]={0};
for (int i=0; i<N;i++)
for (int j=0;j<N;j++)
temp[i]=(temp[i]+(LL)a[j]*b[j][i])%m;
memcpy(c, temp, sizeof temp);
}
void mul(int c[][N], int a[][N], int b[][N])
{
int temp[N][N]={0};
for (int i =0;i<N; i++)
for (int j=0;j<N;j++)
for (int k=0;k<N;k++)
temp[i][j]=(temp[i][j]+(LL)a[i][k]*b[k][j]) % m;
memcpy(c, temp, sizeof temp);
}
int main()
{
cin >>n>>m;
int f1[N]={1,1,1};
int a[N][N]={0,1,0,1,1,1,0,0,1};
n--;
while (n)
{
if (n&1)cal(f1,f1,a);
mul(a,a,a);
n>>=1;
}
cout<<f1[2];
return 0;
}
AcWing 1303. 斐波那契前 n 项和的更多相关文章
- The sum - SGU 122(斐波那契前N项和)
直接上代码....... ======================================================================================= ...
- AcWing 21. 斐波那契数列
题目地址 https://www.acwing.com/solution/acwing/content/2896/ 题目描述输入一个整数 n ,求斐波那契数列的第 n 项. 假定从0开始,第0项为0. ...
- hdu1568斐波那契前4位
题意: 就是求斐波那契数,但是只要求输出前四位,(n<=100000000). 思路: 这个要用到斐波那契的公式和一些log的规律,直接打看着很乱,直接在网上偷张图片吧: ...
- HDU 1568 快速求斐波那契前四位
思路: 把斐波那契通项公式转化成log的形式,高中数学... //By SiriusRen #include <bits/stdc++.h> using namespace std; ], ...
- 1064. 计算斐波那契第n项 通项公式
题目描述 输入n,编写程序输出斐波那契数列的第n项.其中斐波那契数列f(n)的定义如下: f(1)=0,f(2)=1 f(n)=f(n-1)+f(n-2)(n>=2) 输入 一行 ...
- C++实现斐波那契第N项非递归与递归实现的时间比较
/* * 斐波那契数列.cpp * * Created on: 2018年4月9日 * Author: soyo */ #include<iostream> #include<cti ...
- HDU 1715 斐波那契数列1000项
二维数组模拟大数加法就可以了,不太难,直接上代码了. #include<stdio.h> #include<string.h> #include<math.h> # ...
- 斐波那契数列n项的值。(递归和非递归算法Golang实现)
递归实现: func f(num int) int { if num == 1 || num == 2 { return 1 } return f(num-1) + f(num-2) } 非递归实现: ...
- 矩阵快速幂 求斐波那契第N项
#include<cstdio> #include<algorithm> #include<cstring> #include<iostream> us ...
随机推荐
- 更换介质:请把标有Debian ... 的盘片插入驱动器
Debian安装软件报错如下: 更换介质:请把标有 "Debian GNU/Linux 10.8.0 _Buster_ - Official amd64 DVD Binary-1 20210 ...
- Linux_配置加密的https
一.配置https 1.安装好httpd服务后,安装mod_ssl模块 //首先查看是否安装mod_ssl [root@localhost ~]# rpm -qa | grep mod_ssl //安 ...
- session.flush()与session.clear()区别与使用环境
session是有一级缓存的,目的是为了减少查询数据库的时间,提高效率,生命周期与session是一样的 session.flush() 是将session的缓存中的数据与数据库同步 事物提交失败 缓 ...
- java并发编程工具类JUC第三篇:DelayQueue延时队列
DelayQueue 是BlockingQueue接口的实现类,它根据"延时时间"来确定队列内的元素的处理优先级(即根据队列元素的"延时时间"进行排序).另一层 ...
- JS 反射机制及 Reflect 详解
一.什么是反射机制 反射机制是在编译阶段不知道是哪个类被加载,而是在运行的时候才加载.执行. 也就是说,反射机制指的是程序在运行时能够获取自身的信息. js 中的 apply 就是反射机制. 二.Re ...
- Go语言网络通信---tcp上传大文件(粘包问题还需优雅解决)
server端: package main import ( "bufio" "encoding/binary" "fmt" "n ...
- Jmeter- 笔记9 - CLI(无图形界面)
使用CLI模式,减少资源占用 用GUI调试好脚本 在jmeter的bin文件夹运行cmd,然后输入命令:jmeter -n -t [jmx file] -l [results file] -e -o ...
- CUDA C++编程接口:编译
CUDA C++编程接口:编译 一.概述 CUDA C++为熟悉C++编程语言的用户提供了一个简单的路径,以方便地编写程序以执行该设备. 它由一组最小的扩展到C++语言和运行库. 在编程模型中引入了核 ...
- NVIDIA GPU的神经网络自动调度
NVIDIA GPU的神经网络自动调度 针对特定设备和工作负载的自动调整对于获得最佳性能至关重要.这是一个关于如何使用自动调度器为NVIDIA GPU调整整个神经网络的资料. 为了自动调整一个神经网络 ...
- 用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用
用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用 编写高性能的软件不是一件简单的任务.当有了可以编译和运行的代码之后,当您尝试并理解它在可用硬件上的执行情况时,将 ...