逆元
扩展欧几里得法求逆元
void exgcd(int a, int b, int& x, int& y)
{
if (b == 0) {
x = 1;
y = 0;
return;
}
exgcd(b, a % b, y, x);
y -= a / b * x;
}快速幂法求逆元
线性求逆元
最后更新于
void exgcd(int a, int b, int& x, int& y)
{
if (b == 0) {
x = 1;
y = 0;
return;
}
exgcd(b, a % b, y, x);
y -= a / b * x;
}最后更新于
inv[i] = 1;
for (int i = 2; i <= n; i++) {
inv[i] = (ll)(p - p / i) * inv[p % i] % p;
}