版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38083668/article/details/83064584
快速幂:
inline int ksm(int a,int b,int mod)
{
int ans=1;
a%=mod;
while(b)
{
if(b&1) ans=ksc(ans,a,mod);
b>>=1;
a=ksc(a,a,mod);
}
return ans;
}
快速乘(O(logN)):
inline int ksc(int a,int b,int mod)
{
int ans=0;
a%=mod;
while(b)
{
if(b&1) ans=(ans+a)%mod;
b>>=1;
a=(a+a)%mod;
}
return ans;
}
快速乘(O(1)):
inline int mul(int a,int b)
{
return (a*b-(int)((long double)a/mod*b)*mod+mod)%mod;
}