申必东西
\[\sum\limits_i\dbinom{n}{i}\dbinom{m}{i}=\dbinom{n+m}{n}
\]
upd:这我好像 sb,下指标反一下不就是范德蒙德卷积了吗。
for (int T = S; T; T = (T - 1) & S)
\[\sum\limits_{i=1}^{n}i[i\perp n]=\dfrac{n\varphi(n)}{2} ,n\ge2
\]
高维前缀和压位优化,(每一位都是 \(0/1\),要变成下标是它子集的位置的或)
int S, S1, S2, N;
ull v[1 << 21], subset[1 << 6];
void Init() {
N = max(n * m, 6);
S = 1 << N;
S1 = 1 << 6, S2 = S >> 6;
for (int i = 0; i < S1; i++)
for (int j = 0; j <= i; j++)
if ((i | j) == i) subset[i] |= 1ull << j;
}
void subset_sum() {
for (int st = 0; st < S2; st++)
for (int i = 0; i < S1; i++) v[st] |= (ull)(!!(v[st] & subset[i])) << i;
for (int i = 0; i < N - 6; i++)
for (int st = 0; st < S2; st++)
if (st >> i & 1) v[st] |= v[st ^ 1 << i];
}
\(f_x=1+\sum\limits_{y\in son(x)}f_y\times p_{siz_y}\),\(p_i\) 是第 \(i\) 个质数。
判断树上路径 \((x,y)\) 和路径 \((u,v)\) 是否相交,等价于判断是否满足:\(\operatorname{lca}(u,v)\) 在路径 \((x,y)\) 上或 \(\operatorname{lca}(x,y)\) 在路径 \((u,v)\) 上。
for (int i = 2; i < p; i++)
inv[i] = (p - p / i) * inv[p % i] % p;

浙公网安备 33010602011771号