快速幂与模运算
核心概念
快速幂(二进制取幂)在 时间内计算 ,核心思想是将指数按二进制分解:
模运算性质
- 加法:
- 乘法:
- 幂运算可在中间过程取模
代码实现
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 | 国际竞赛,适合提升 |