有的时候,普通的乘法然后取模,在乘的过程中会爆 long long,所以我们需要使用快速乘
有一种基于快速幂的算法的快速乘,复杂度(logn)
inline ll quick_mul(ll a,ll n,ll mo){
ll ans=0;
while(n){
if(n&1) ans=(ans+a)%mo;
a=(a<<1)%mo;
n>>=1;
}
return ans;
}
还有一种O(1)的方法
inline ll quick_mul(ll a,ll n,ll mo){
ll ans=0;
while(n){
if(n&1) ans=(ans+a)%mo;
a=(a<<1)%mo;
n>>=1;
}
return ans;
}