快速幂
求快速幂的两种方法:
第一种:
ll fastpow(ll a,ll b) //快速幂(时间复杂度为o(logn))
{
if(b == 1) return a;
ll temp = fastpow(a, b / 2);
if(b % 2 == 1) return temp * temp % mod * a % mod;
else return temp * temp % mod;
}
第二种:
ll fastpow(ll a,ll b) //快速幂(最多算到2^62)
{
ll res = 1;
while(b){
if(b & 1) res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}
- 求快速幂一般不会单独出现,它只是一个基础部分,伴随着求逆元、拓展欧几里得算法等等

浙公网安备 33010602011771号