ll mypow(ll a,ll b){
ll sum=1LL;
while(b){
if(b&1) sum=(1LL*sum*a)%mod;
a=(1LL*a*a)%mod;
b>>=1;
}
return sum;
}
void ext_gcd(ll a, ll b, ll &d, ll &x, ll &y)//拓展欧几里得求逆元
{
if (!b){
d=a; x=1LL; y=0LL;
}
else{
ext_gcd(b, a%b, d, y, x);
y-=x*(a/b);
}
}
ll inv(ll k)//求逆元
{
ll x, y, d;
ext_gcd(k, mod, d, x, y);
return (x+mod)%mod;
}
模板之快速幂和求逆元
最新推荐文章于 2024-01-21 17:26:58 发布