快速幂与模运算

核心概念

快速幂(二进制取幂)在 时间内计算 ,核心思想是将指数按二进制分解:

模运算性质

  • 加法:
  • 乘法:
  • 幂运算可在中间过程取模

代码实现

long long binpow(long long a, long long b, long long p) {
  long long res = 1;
  while (b > 0) {
    if (b & 1) res = res * a % p;
    a = a * a % p;
    b >>= 1;
  }
  return res;
}

光速幂(底数固定)

块长 ,预处理 回答查询。

练习题目

题目描述
P1226 【模板】快速幂
LeetCode 50 Pow(x, n)实现浮点快速幂
UVa 374 Big Mod大模快速幂

相关链接

来源:OI-wiki binary-exponentiation.md

多平台练习

| 洛谷 | 本题单 | 竞赛基础 |
| POJ (北大) | PKU JudgeOnline | 经典题目,适合巩固 |
| HDU (杭电) | HDU OJ | 暑期多校训练 |
| Codeforces | Codeforces | 国际竞赛,适合提升 |