乘法逆元
预处理:
s[0] = 1;
for (int i = 1; i <= n; i++) s[i] = s[i - 1] * i % p;
sv[n] = qpow(s[n], p - 2);
for (int i = n; i >= 1; i--) sv[i - 1] = sv[i] * a[i] % p;
for (int i = 1; i <= n; i++) inv[i] = sv[i] * s[i - 1] % p;
\(mod\) 为质数,费马小定理秒了。
非质数用扩展欧几里得算法。
每一步,让 \(x' = y,\ y' = x - [a / b]y\)
int exgcd(int a, int b, int $x, int $y) {
if (b == 0) {x = 1, y = 0; return a;}
int d = exgcd(b, a % b, x, y), z = x;
x = y, y = z - y * (a / b);
return d;
}
lyd de 例题
没有。

浙公网安备 33010602011771号