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

快速幂

前题引入

我们平时用的pow函数速度太慢了怎么办,我就就需要快速幂(意思废话)

题目分析

前题铺垫

你只是需要知道一个非常简单的东西
a^b + a^c =a^(b+c)

思路

既然暴力是O(b)的,那我们是不是可以考虑O(log b)

那我们尝试将b除以2

那么就可以知道a^b = a^b/2 + a^b/2
但是我们可以想到如果b是个单数怎么办呢,因为c++是默认向下取整的,所以 a^b = a^b/2 + a^b/2 +a^b%2

代码(模板)

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b,mod;
int qpow(int a,int b){if(b==1) return a;else if(b==0) return 1;else{int ans=qpow(a,b/2)%mod;int ans1=(ans%mod)*(ans%mod)%mod;if(b%2==1){ans1=((ans1%mod)*(a%mod))%mod;} return ans1%mod;}
}
signed main(){cin>>a>>b>>mod;cout<<a<<"^"<<b<<" mod "<<mod<<"="<<qpow(a,b)%mod;return 0;
}

完结撒花,bye

http://www.wxhsa.cn/company.asp?id=7024

相关文章:

  • 模拟退火
  • 记录我见过的神人
  • DOS指令学习
  • 动态SQL
  • 调教分块代码
  • 100 粉粉福
  • My All Math
  • 【Azure环境】使用ARM Template部署Policy模板时候报错不支持filed函数: The template function field is not valid.
  • CDQ分治
  • 开源AI大模型、AI智能名片与S2B2C商城小代码:从“不出现=不存在”到“精准存在”的数字化转型路径
  • 202509 组合数学与计数类 DP 笔记
  • edu 106 E(LCS dp + 多源bfs优化)
  • ABC310E NAND repeatedly 题解
  • MyBatis插入语句配置
  • 操作运算符
  • 看 NOI2025 游记记
  • 整体二分
  • 得力 - Bruce
  • 短视频营销运营导师张伽赫,绳木传媒AI+短视频引领企业数字化变革
  • 详细介绍:还在重启应用改 Topic?Spring Boot 动态 Kafka 消费的“终极形态”
  • 用 TensorFlow 和 CNN 实现验证码识别
  • 用 PyTorch 和 CNN 进行验证码识别
  • 用 Keras 和 CNN 进行验证码识别
  • 从 Bank Conflict 数学表示看 Buffer 设计 Trade-Off
  • 被彼此笼罩 任泪水将我们缠绕 深陷入恶魔的拥抱 在阴冷黑暗处灼烧 吞下这毒药
  • mysql无法连接服务器的mysql #mysql8
  • DAG 最小路径覆盖问题 笔记
  • SP3D c# 开发独立的exe
  • python错误code
  • 瑞 ping 我