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

快速幂 c++

一般大家写x^a都是

int ans = 1;
for (int i = 1; i <= a; i ++)ans *= x;

时间复杂度O(n)

但是这对于我们还不够,我们要O(logn)


首先我们得知道一个数学知识

x^{a^{b}} = x^{a*b}

那么求 x^a 就有以下递归式

a 能2整除   x^a = x^{(a/2)^{2}} = x^{a/2} * x^{a/2}

a 不能2整除  x^a = x^{(a/2)^{2}} * x = x^{a/2} * x^{a/2} * x (这里a/2是整除)

所以每次都调用 a/2 不就是O(logn)

最后补充一个东西

x^a mod b = (x^{i} mod b * x^{j} mod b) mod b  (i + j = a)

代码:

#include <iostream>
using namespace std;
typedef long long LL;
LL a, b, m;
//m是取模的数
LL q_pow(LL a, LL b, LL m) {if(b == 0)return 1;LL tmp = q_pow(a, b >> 1, m) % m;return (b & 1 ? a : 1) * tmp % m * tmp % m;
//b & 1 和 b % 2 == 1 是等价的
}
int main() {cin >> a >> b >> m;cout << q_pow(a, b, m);return 0;
} 

相关文章:

快速幂 c++

一般大家写都是 int ans 1; for (int i 1; i < a; i )ans * x;时间复杂度 但是这对于我们还不够&#xff0c;我们要 首先我们得知道一个数学知识 那么求 就有以下递归式 a 能被2整除 a 不能被2整除 (这里a/2是整除) 所以每次都调用 不就是么 最后补充一个东西…...

分享一个基于微信小程序的医院口腔助手小程序 牙科诊所预约小程序 源码 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…...

Si3262 一款低功耗刷卡+触摸+mcu 三合一SOC芯片

Si3262是-款高度集成的低功耗soC芯片&#xff0c;其集成了基于RISC-V 核的低功耗MCU和工作在13.56MHz的非接触式读写器模块。 该芯片ACD模式下刷卡距离可达4-5cm&#xff08;天线决定&#xff09;&#xff0c;适用于智能门锁&#xff0c;电子锁&#xff0c;柜锁&#xff0c;桑拿…...

[H5动画制作系列] 奔跑的豹子的四种Demo演化

资源: bg.jpg: leopard.png: 背景透明 peopard2.png 背景不透明 参考代码1: leopard.js: (function(window) {ma function() {this.initialize();}ma._SpriteSheet new createjs.SpriteSheet({images: ["leopard.png"], frames: [[0,0,484,207],[486,0,484,207]…...

如何实现让一个函数能返回多个值的效果

在C语言中&#xff0c;一个函数通常只能返回一个值。但是可以通过指针参数或结构体来模拟返回多个值的效果。 使用指针参数&#xff1a;你可以将需要返回的值作为函数的参数&#xff0c;通过指针的形式传入&#xff0c;让函数将结果写入指针所指向的内存位置。 void multiple…...

End-to-end 3D Human Pose Estimation with Transformer

基于Transformer的端到端三维人体姿态估计 摘要 基于Transformer的架构已经成为自然语言处理中的常见选择&#xff0c;并且现在正在计算机视觉任务中实现SOTA性能&#xff0c;例如图像分类&#xff0c;对象检测。然而&#xff0c;卷积方法在3D人体姿态估计的许多方法中仍然保…...

状态管理Pinia

Vue3 状态管理 - Pinia 1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 &#xff0c;是 Vuex 状态管理工具的替代品 2. 手动添加Pinia到Vue项目 后面在实际开发项目的时候&#xff0c;Pinia可以在项目创建时自动添加&#xff0c;现在我们初次学习&#xff0c;从零开始…...

maven运行报错解决

在IDEA上运行较大项目时&#xff0c;编译量很大&#xff0c;可能会报出 Error:java: java.lang.OutOfMemoryError: Java heap space 的错误&#xff0c;解决方法如下&#xff1a; java.lang.OutOfMemoryError是内存不足导致的&#xff0c;因此需要修改Idea运行项目的内存大小。…...

在线会计软件推荐:高效实用的选择解析

如果您始终在密切关注Zoho&#xff0c;您一定知道&#xff0c;我们的软件在一个接一个的增加&#xff0c;为的是构建出一套可以全面在线协作、提升业务生产力的应用系统&#xff0c;我们始终致力于为各类企业构建完整的业务应用&#xff0c;以便他们在Zoho上运行整个业务系统。…...

vue监听Enter键

目录 keydown.enter 方法1: 使用keydown.enter指令 方法2: 在keydown事件处理函数中检查按下的键 keyup.enter.native keydown.enter与keyup.enter.native区别 1. 触发时机&#xff1a; 2. 事件类型&#xff1a; 3. 事件冒泡&#xff1a; keydown.enter 在Vue中监听En…...

ADS中带通滤波器模型参数含义学习笔记

ADS中带通滤波器模型参数含义 1、 Fcenter 中心频率 2、 BWpass 通带带宽 3、 Apass 衰减量时的通带带宽 这两个是对应的&#xff0c;比如说是80MHz&#xff0c;3dB&#xff0c;那么就是3dB时的带宽为80MHz&#xff0c;如果改为0.1dB&#xff0c;那么带宽就是0.1dB时的带宽为80…...

【Blender】Blender入门学习

目录 0 参考视频教程0.1 Blender理论知识0.2 Blender上手实践0.3 FBX模型导入Unity 1 Blender的窗口介绍1.1 主界面1.2 模型编辑窗口 2 Blender的基本操作2.1 3D视图的平移2.2 3D视图的旋转2.3 3D视图的缩放2.4 修改快捷键2.5 使物体围绕选择的物体旋转2.6 四视图的查看2.7 局部…...

Redis 三种特殊的数据类型 - Geospatial地理位置 - Hyperloglog基数统计的算法 - Bitmaps位图(位存储)

目录 Redis 三种特殊的数据类型&#xff1a; Geospatial&#xff1a;地理位置 Geospatial类型常用的命令&#xff1a; GEOADD&#xff1a;添加地理位置 GEOPOS&#xff1a;获取地理位置 GEODIST&#xff1a;返回两个给定位置之间的距离 GEORADIUS&#xff1a;以给定的经纬…...

Python web 框架web.py「简约美」

web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain, you can use it for whatever purpose with absolutely no restrictions. web.py 是一个简单而强大的 Python Web 框架。web.py 属于公共领域&#xff0c;您可以…...

Bootstrap 重新数据查询时页码为当前页问题

记录一下使用前端组件Bootstrap遇到的一个小问题&#xff1a; 问题描述 第一次查询数据为5页&#xff0c;翻页到第5页后&#xff0c;选中条件再次查询数据时&#xff0c;传到后端页码仍旧为5&#xff0c;而此时数据量小于5页&#xff0c;这时候页码没有重置成第一页&#xff…...

scratch舞蹈比赛 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch舞蹈比赛 一、题目要求 1、准备工作 2、功能实现 二、案例分析...

windows下安装redis扩展库

1.根据PHP版本号&#xff0c;编译器版本号和CPU架构 选择php_redis和php_igbinary文件(如果是选择线程的情况下需要再去配置php5ts.dll) windows.php.net - /downloads/pecl/releases/redis/ windows.php.net - /downloads/pecl/releases/igbinary/ php_igbinary-3.1.2-7.2-…...

大数据平台数据安全具体措施有哪些?有推荐的吗?

大数据平台是企业处理和分析数据的重要工具之一&#xff0c;也是企业数据存储的重要载体&#xff0c;因此保障大数据平台安全至关重要。那你知道大数据平台数据安全具体措施有哪些&#xff1f;有推荐的吗&#xff1f; 大数据平台数据安全具体措施有哪些&#xff1f; 1、数据…...

基于SSM的健康综合咨询问诊平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

每日一题 2596. 检查骑士巡视方案

难度&#xff1a;中等 很简单&#xff0c;从第 0 步开始模拟即可&#xff0c;唯一sb的就是测试用例中如果&#xff08;0&#xff0c;0&#xff09;处不为0的话就直接false&#xff0c;而不是去找0在哪 我的代码&#xff1a; class Solution:def checkValidGrid(self, grid: L…...

第二章 进程与线程 三、进程控制

目录 一、定义 二、实现方式&#xff08;用原语实现&#xff09; 注意&#xff1a; 1、原语是什么 2、如何实现原语的原子性 3、关中断指令和开中断指令是什么 三、进程控制的相关原语 1、进程的创建 ​编辑 2、进程的终止 3、进程的阻塞与唤醒&#xff08;阻塞和唤醒…...

【云原生进阶之PaaS中间件】第二章Zookeeper-3.2架构详解

1 Zookeeper工作原理 1.1 Zookeeper的角色 领导者&#xff08;leader&#xff09;&#xff0c;负责进行投票的发起和决议&#xff0c;更新系统状态 学习者&#xff08;learner&#xff09;&#xff0c;包括跟随者&#xff08;follower&#xff09;和观察者&#xff08;obser…...

K8S:kubectl陈述式、声明式资源管理及金丝雀部署

文章目录 一.陈述式资源管理方法1.陈述式资源管理概念2.基本信息查看&#xff08;1&#xff09;查看版本信息&#xff08;2&#xff09;查看资源对象简写&#xff08;3&#xff09;查看集群信息&#xff08;4&#xff09;配置kubectl自动补全&#xff08;5&#xff09;node节点…...

docker容器日志管理

docker容器日志导致主机磁盘空间满了。docker logs -f container_name 噼里啪啦一大堆&#xff0c;很占用空间&#xff0c;需要的日志可进行备份&#xff0c;不用的日志可以清理掉了。 设置一个容器服务的日志大小上限 上述方法&#xff0c;日志文件迟早又会涨回来。要从根本上…...

Oracel ORA-22992 错误的解决方法

在oracle数据库中&#xff0c;可以使用DBLink 进行垮数据库访问。 今天在使用dblink 查询数据时&#xff0c;提示如下&#xff1a;ORA-22992&#xff1a;无法使用从远程表选择的LOB定位器。 无论是查询远程表还是视图&#xff0c;如果里面存在 CLOB类型的字段&#xff0c;就会…...

CrossOver 23 正式发布:可在 Mac 上运行部分 DX12 游戏

CodeWeivers 公司于今年 6 月发布了 CrossOver 23 测试版&#xff0c;重点添加了对 DirectX 12 支持&#xff0c;从而在 Mac 上更好地模拟运行 Windows 游戏。 该公司今天发布新闻稿&#xff0c;表示正式发布 CrossOver 23 稳定版&#xff0c;在诸多新增功能中&#xff0c;最值…...

一、Mediasoup源码介绍

一、Mediasoup 整体结构 整个Mediasoup库通过Nodejs管理&#xff0c;比如整体逻辑、worker、router、producer、consumer...都是通过JS进行管理的。 其底层的数据传输是通过C部分进行控制的&#xff0c;通过NodeJs来控制C部分&#xff0c;以实现整体的数据传输效 二、Mediasou…...

⑧ 嵌套路由配置

这种就是路由嵌套 在index.js中加上三级页面 引入到二级导航里面 增加重定向配置 三级页面默认显示第一个页面信息 在这里插入图片描述...

【ppt技巧】将幻灯片里的图片背景设置为透明

在PPT中添加了图片&#xff0c;想要将图片中的背景设置为透明或者想要抠图&#xff0c;有什么方法吗&#xff1f;今天分享两个方法。 方法一&#xff1a; 添加图片&#xff0c;选中图片之后&#xff0c;点击【图片格式】功能&#xff0c;点击最左边的【删除背景】 PPT会自动帮…...

rrweb入门

rrweb 背景 rrweb 是 record and replay the web&#xff0c;是当下很流行的一个录制屏幕的开源库。与我们传统认知的录屏方式&#xff08;如 WebRTC&#xff09;不同的是&#xff0c;rrweb 录制的不是真正的视频流&#xff0c;而是一个记录页面 DOM 变化的 JSON 数组&#x…...

wordpress空格代码/最新热点新闻事件

mysql数据库&#xff1a;数据以“文件的形式”存储在硬盘里 网站的瓶颈是在数据库的访问上&#xff0c;mysql数据库是运行在硬盘上面的&#xff0c;把数据放到内存里速度就快多了 Redis是一款内存高速缓存数据库&#xff0c;使用c语言编写&#xff0c;数据模型是key-value&…...

自己做网站卖阀门/网络推广怎么做

利用回溯法解决全排列问题。 题目&#xff1a; 给定一个没有重复数字的序列&#xff0c;返回其所有可能的全排列。示例&#xff1a; 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]思路&#xff1a; 代码&#xff1a; class Solution { pub…...

佛山市建设小学网站/网络营销优化培训

IIS最近有个别客户反映购买的在线人数(IIS连接数)和实际不符合&#xff0c;现在特说明如下首先了解什么是IIS连接数。IIS连接数指并发连接数&#xff0c;什么意思呢&#xff1f;要分几种情况&#xff1a;(以100M空间50人在线为例)A 用户单点下载你的文件&#xff0c;结束后正常…...

网站制作图片插入代码/2023第二波疫情已经到来了吗

package com.cds.test;import java.util.Arrays;import org.junit.Test;public class RegexLearner {Test/*** 需求&#xff1a;我有如下一个字符串:”91 27 46 38 50”&#xff0c;请写代码实现最终输出结果是&#xff1a;”27 38 46 50 91”* 100* 80* 分析:* 1,将字符串切割…...

wordpress社区型主题/长沙疫情最新消息今天封城了

tempfile 模块专门用于创建临时文件和临时目录&#xff0c;它既可以在 UNIX 平台上运行良好&#xff0c;也可以在 Windows 平台上运行良好。 tempfile 模块下提供了很多常用的函数&#xff0c;下面给大家具体介绍一下这些函数。tempfile.TemporaryFile(modewb, bufferingNone, …...

网站设计公司哪里好/超级推荐的关键词怎么优化

参考:https://docs.opencv.org/master/da/d13/tutorial_aruco_calibration.html 说明:从视频中挑选标定样本,键盘输入“c”:选择该帧作为样本;键盘输入“d”:不选择该帧作为样本,进行下一帧挑选;键盘输入“esc”:样本挑选完毕; #include <opencv2/highgui.hpp&…...