我们当然都知道,快速幂是个好东西。然鹅快速幂也有bug——如果模数比较大,一乘就容易爆long long,那么就需要使用龟速乘了。
ll gui_cheng(ll a,ll x,ll mod) { ll ans=0; while(x) { if(x&1) ans=(ans+a)%mod; a=(a+a)%mod; x>>=1; } return ans; } ll gui_pow(ll a,ll x,ll mod) { ll ans=1; while(x) { if(x&1) ans=gui_cheng(ans,x,mod)%mod; a=a*a%mod; x>>=1; } return ans; }