计算 C n / a, b, c 模板
C n / a, b, c :结果为 n! / a! / b! / c!
快速幂算法 ksm :
点击查看代码
ll ksm(ll cur, int times) {
ll base = cur;
ll res = 1;
while (times) {
if ((times & 1) == 1) {
res = (res * base) % MOD;
}
times >>= 1;
base = (base * base) % MOD;
}
return res;
}
计算阶乘: fac
点击查看代码
ll getFac(vector<ll>& fac, int n) {
if (fac[n] != -1) return fac[n];
ll& res = fac[n] = 1;
for (int i = 2; i <= n; ++i) {
res = (res * i) % MOD;
}
return res;
}
计算 a!, b!, c! 的逆的时候需要用到费马小定理:a!的负 = ksm(fac(a), MOD-2)(ksm函数里面自动带有除余操作)

浙公网安备 33010602011771号