1.快速乘法
ll mul(ll a,ll b)//a*b
{
ll ans=0;
while(b)
{
if(b&1) ans=(ans+a)%mod;
b>>=1;
a=(a+a)%mod;
}
return ans;
}
2.快速幂(引用了快速乘法)
ll pow(ll a,ll b)//a^b
{
ll ans=1;
while(b)
{
if(b&1) ans=mul(ans,a);
b>>=1;
a=mul(a,a);
}
return ans;
}
3.矩阵快速幂(优先求出构造函数,或者找出函数规律)
参考——https://www.cnblogs.com/chsobin/p/8417356.html
需要额外注意(a^b-x)%c==(a^b-x+c)%c,防止减去x后值为负数