题解汇总:
SMU Summer 2024 Team Round 2(2024CCPC上海) AEJLM题解-CSDN博客
Codeforces Round 964 (Div. 4) ABCDE题解-CSDN博客
河南萌新联赛2024第(四)场 BCDEFHI题解-CSDN博客
排列组合:
本周学到了排列组合的逆元写法和Lucas定理
逆元写法:
速度快,方便输出
LL qpow(LL a, LL b, LL p)
{
int res = 1;
while (b)
{
if (b & 1) res = res * a % p;
b >>= 1;
a = a * a % p;
}
return res;
}
LL C(LL a, LL b)
{
LL res = 1;
for (int i = 1, j = a; i <= b; i ++ , j -- )
{
res = (LL)res * j % p;
res = (LL) res * qpow(i, p - 2, p) % p;
}
return res;
}
Lucas定理:
更快,但只能输出结果
LL lucas(LL a, LL b)
{
if (a < p && b < p) return C(a, b);
return (LL)C(a % p, b % p) * lucas(a / p, b / p) % p;
}
例题:
河南萌新联赛2024第(四)场 BCDEFHI题解-CSDN博客 C题
快乐预处理:
欧拉筛:
可快速预处理出素数表
void ola(int n){
for(int i=2;i<=n;i++){
if(st[i]==0) primenum.push_back(i);
for(int j=0;primenum[j]<=n/i;j++){
st[primenum[j]*i]=1;
if(i%primenum[j]==0) break;
}
}
}
例题:河南萌新联赛2024第(四)场 BCDEFHI题解-CSDN博客 E题