输出斐波那契数列前 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 项和的更多相关文章

  1. The sum - SGU 122(斐波那契前N项和)

    直接上代码....... ======================================================================================= ...

  2. AcWing 21. 斐波那契数列

    题目地址 https://www.acwing.com/solution/acwing/content/2896/ 题目描述输入一个整数 n ,求斐波那契数列的第 n 项. 假定从0开始,第0项为0. ...

  3. hdu1568斐波那契前4位

    题意:      就是求斐波那契数,但是只要求输出前四位,(n<=100000000). 思路:      这个要用到斐波那契的公式和一些log的规律,直接打看着很乱,直接在网上偷张图片吧:   ...

  4. HDU 1568 快速求斐波那契前四位

    思路: 把斐波那契通项公式转化成log的形式,高中数学... //By SiriusRen #include <bits/stdc++.h> using namespace std; ], ...

  5. 1064. 计算斐波那契第n项 通项公式

    题目描述 输入n,编写程序输出斐波那契数列的第n项.其中斐波那契数列f(n)的定义如下: f(1)=0,f(2)=1         f(n)=f(n-1)+f(n-2)(n>=2) 输入 一行 ...

  6. C++实现斐波那契第N项非递归与递归实现的时间比较

    /* * 斐波那契数列.cpp * * Created on: 2018年4月9日 * Author: soyo */ #include<iostream> #include<cti ...

  7. HDU 1715 斐波那契数列1000项

    二维数组模拟大数加法就可以了,不太难,直接上代码了. #include<stdio.h> #include<string.h> #include<math.h> # ...

  8. 斐波那契数列n项的值。(递归和非递归算法Golang实现)

    递归实现: func f(num int) int { if num == 1 || num == 2 { return 1 } return f(num-1) + f(num-2) } 非递归实现: ...

  9. 矩阵快速幂 求斐波那契第N项

    #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> us ...

随机推荐

  1. Docker Swarm(九)资源限制

    资源限制 docker run 針對限制容器資源有許多設置選項,但Swarm中的 docker service 是另一回事,目前只有cpu和memory的選項可以操作. 如果 docker 找不到足夠 ...

  2. sed -n "29496,29516p" service.log:从29496行开始检索,到29516行结束

    在工作中常用的Linux命令  javalinux 发布于 2019-07-24   约 11 分钟 前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://gith ...

  3. JQuery Ajax 请求参数 List 集合处理

    引言 JQuery Ajax 发送请求参数一般都是基本类型,比如 String.int:那么,请求参数如果是 List 集合应该如何处理呢? 情况一:Aajx 发送 List 类型请求参数 举例如下: ...

  4. 10.1 ifconfig:配置或显示网络接口信息

    ifconfig命令 用于配置网卡IP地址等网络参数或显示当前网络的接口状态,其类似于Windows下的ipconfig命令,这两个命令很容易混淆,读者需要区分一下.此外,ifconfig命令在配置网 ...

  5. python 判断对象是否相等以及eq函数

    当对两个点的实例进行值的比较时,比如p1=Point(1,1) p2=Point(1,2),判断p1==p2时__eq__()会被调用,用以判断两个实例是否相等.在上述代码中定义了只要x和y的坐标相同 ...

  6. xshell中登录服务器图形化界面

    安装全套的xmanager程序 打开xshell工具程序 点击新建 输入ip等必要信息 点击隧道,英文版为tunnel 勾选红色的选项1和2 填写一些用户名和密码信息(图就略了O(∩_∩)O) 敲入指 ...

  7. Apple Xcode 12.5 (12E262) 正式版发布 - 构建 Universal App

    请访问原文链接:https://sysin.org/article/apple-xcode-12/,查看最新版.转载请保留出处. Xcode 12 简介 Xcode 12 采用全新设计,在 macOS ...

  8. Processing平台之PVector求角度

    问题:在processing 平台,通过给定三个PVector向量,如何求他们之间的夹角,同时确定是在左侧还是右侧? 如图所示,在processing 平台中,PVector表示点的坐标是以原点为起点 ...

  9. DDD中聚合、聚合根的含义以及作用

    聚合与聚合根的含义 聚合: 聚合往往是一些实体为了某项业务而聚类在一起形成的集合 , 举个例子, 社会是由一个个的个体组成的,象征着我们每一个人.随着社会的发展,慢慢出现了社团.机构.部门等组织,我们 ...

  10. git stash的常用操作

    列出stash的:      git stash list移除stash:         git stash drop stash@{0}查看stash:         git stash sho ...