常用板子
快速乘
ll mul(ll x,ll y,ll mod){ if(y==0||x==0) return 0; ll ans=0; while(y){ if(y&1) ans+=x,ans%=mod; x=(x<<1)%mod;y>>=1; } return ans; }
快速幂
ll ksm(ll x,ll y,ll mod){ ll ans=1; while(y){ if(y&1) ans=ans*x%mod; x=x*x%mod;y>>=1; } return ans; }
ll mul(ll x,ll y,ll mod){ if(y==0||x==0) return 0; ll ans=0; while(y){ if(y&1) ans+=x,ans%=mod; x=(x<<1)%mod;y>>=1; } return ans; }
ll ksm(ll x,ll y,ll mod){ ll ans=1; while(y){ if(y&1) ans=ans*x%mod; x=x*x%mod;y>>=1; } return ans; }