矩阵快速幂算法总结

题目链接

活动 - AcWing 本课程系统讲解常用算法与数据结构的应用方式与技巧。icon-default.png?t=N7T8https://www.acwing.com/problem/content/1305/

题解

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;typedef long long LL;const int N = 3;int n, m;void mul(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) mul(f1, f1, a);  // res = res * amul(a, a, a);  // a = a * an >>= 1;}cout << f1[2] << endl;return 0;
}

参考资料

  1. AcWing算法提高课

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL多表关联查询练习题

一、创建表的素材 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; …

Android的setContentView流程

一.Activity里面的mWindow是啥 在ActivityThread的performLaunchActivity方法里面&#xff1a; private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {ActivityInfo aInfo r.activityInfo;if (r.packageInfo null) {r.packageInfo getP…

15 万奖金!开放原子开源大赛 OpenAnolis -云原生赛题报名开始

开放原子开源基金会牵头发起的首届“开放原子开源大赛”&#xff0c;旨在联合开源组织、企事业单位、高等院校、科研院所、行业组织、投融资机构等多方资源&#xff0c;充分发挥产业链生态上下游的协同能力&#xff0c;基于开源共享、共建共治的原则共同举办。大赛搭建面向全球…

教育新势力:多端口知识付费小程序重塑在线教育生态

随着知识付费市场的蓬勃发展&#xff0c;多端口知识付费小程序已成为课程销售的关键工具。本文将探讨多端口知识付费小程序的重要性和乔拓云教育系统的功能&#xff0c;帮助您在网上成功销售课程。 一、多端口知识付费小程序的优点 多端口知识付费小程序具有多渠道触达用户、提…

IOS 相机权限申请-swift

配置描述 在Info.plist文件中&#xff0c;新建一个键值对Privacy - Camera Usage Description&#xff08;或者NSCameraUsageDescription&#xff09;&#xff0c;值为申请描述说明&#xff0c;自定义的 申请 然后在需要申请的文件中导入AVFoundation import AVFoundation…

你觉得哪个软件写verilog体验最好?

**“你觉得哪个软件写verilog体验最好&#xff1f;”**这个问题是我再网络上看到的一个热点话题&#xff0c;浏览量高达733911&#xff0c;引起大家的广泛讨论。移知教育小编特意请教了行业大咖&#xff0c;下面为大家分享解答&#xff0c;希望能为大家带来帮助。 有几个流行的…

跟着cherno手搓游戏引擎【4】窗口抽象、GLFW配置、窗口事件

引入GLFW&#xff1a; 在vendor里创建GLFW文件夹&#xff1a; 在github上下载&#xff0c;把包下载到GLFW包下。 GitHub - TheCherno/glfw: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input修改SRC/premake5.lua的配置&#xff1a;12、13、15、36…

分布式架构理论:从头梳理分布式架构的重难点

文章目录 一、分布式架构 - 系统理论1、分布式一致性与CAP理论2、BASE理论3、分布式一致性算法&#xff1a;Raft&#xff08;1&#xff09;Paxos算法&#xff08;2&#xff09;Raft算法&#xff08;3&#xff09;共识算法&#xff1a;拜占庭将军问题 4、脑裂现象和Lease机制&am…

AI模型理解误区:微调垂直行业-VS-企业专属知识库或AI助理

概述 企业定制私有化大模型的区别&#xff0c;分为训练大模型和调用大模型两种方向&#xff0c;以及企业自己的智能客服的实现方法。 - 企业定制的私有化大模型与一般的大模型不同&#xff0c;需要高成本训练。- 企业可以选择调用已经训练好的大模型来应用。- 企业可以使用向量…

今天吃什么小游戏(基于Flask框架搭建的简单应用程序,用于随机选择午餐选项。代码分为两部分:Python部分和HTML模板部分)

今天吃什么 一个简单有趣的外卖点饭网站&#xff0c;不知道吃什么的时候&#xff0c;都可以用它自动决定你要吃的&#xff0c;包括各种烧烤、火锅、螺蛳粉、刀削面、小笼包、麦当劳等午餐全部都在内。点击开始它会随意调出不同的午餐&#xff0c;点击停止就会挑选一个你准备要吃…

如何用ArcGIS制作城市用地适应性评价

01概述 “城市用地适宜性评价是城市总体规划的一项重要前期工作&#xff0c;它首先对工程地质、社会经济和生态环境等要素进行单项用地适宜性评价&#xff0c;然后用地图叠加技术根据每个因子所占权重生成综合的用地适宜性评价结果&#xff0c;俗称“千层饼模式”。 做用地适…

git 删除 submodule 子模块的步骤

实验有效&#xff0c;这里删除了两个 submodule。 1, 执行删除 submodule mkdir tmp1 && cd tmp1 && git clone --recursive ssh://gitaaa.bbb.ccc.git \ && cd ccc/ && git checkout -b abranch_01 \ && git submodule deinit -f…

2024年腾讯云新用户优惠云服务器价格多少?

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

统计学-R语言-2.2

文章目录 前言导入.RData文件方式1方式2方式3 导入程序包方式一方式二 总结 前言 本篇文章是将上篇得软件安装完&#xff0c;对其部分功能进行介绍。 导入.RData文件 在我们日常练习时会有.RData文件导入&#xff0c;并对其进行分析&#xff0c;下面是两种方导入.RData文件。…

在windows11系统上利用docker搭建ubuntu记录

我的windows11系统上&#xff0c;之前已经安装好了window版本的docker&#xff0c;没有安装的小伙伴需要去安装一下。 下面直接记录安装linux的步骤&#xff1a; 一、创建linux容器 1、拉取镜像 docker pull ubuntu 2、查看镜像 docker images 3、创建容器 docker run --…

Java SE入门及基础(15)

Java 中的标号&#xff08;标签 label&#xff09; 1. 语法规则 标号名称 : 循环结构 2. 作用 标号的作用就是给代码添加一个标记&#xff0c;方便后面使用。通常应用在循环结构中&#xff0c;与break 语句配合使用 3. 应用场景 有如下菜单&#xff1a; 实现其中返回主菜…

RAG常见七大坑

论文题目&#xff1a;《Seven Failure Points When Engineering a Retrieval Augmented Generation System》 论文地址&#xff1a;https://arxiv.org/pdf/2401.05856.pdf 这篇论文主要探讨了构建检索增强生成系统&#xff08;Retrieval Augmented Generation, RAG&#xff09;…

idea写sql语句快捷键提醒,mapper注解开发,mybatis

第一步&#xff1a;注入SQL语言 1.显示上下文操作&#xff08;没有这个选项的话就选中sql然后直接alt回车快捷键&#xff09;2.注入语言或引用 3.mysql 第二步&#xff1a;配置MySQL数据库连接 1.首先点击侧边的数据库&#xff0c;再点击上面的加号 2.点击数据源&#xff…

低频信号发生器

前言 最近我快期末考试了&#xff0c;有点忙着复习。没时间写文章&#xff0c;不过学会了焊接 挺开心的所以买几套。 焊得怎么样这就是我们今天故事的主角“低频信号发生器”&#xff08;由于要用到所以这是购买链接&#xff09; 好&#xff0c;故事开始&#xff1a; 如何将…

手写一个starter来理解SpringBoot的自动装配

自动装配以及简单的解析源码 自动装配是指SpringBoot在启动的时候会自动的将系统中所需要的依赖注入进Spring容器中 我们可以点开SpringBootApplication这个注解来一探究竟 点开这个注解可以发现这些 我们点开SpringBootConfiguration这个注解 可以发现实际上SpringBootApp…