组合数学
-
\(\binom{n}{m}\binom{m}{k} = \binom{n}{k}\binom{n - k}{m - k}\)
-
\(\binom{n}{m} = \sum_{i = 1}^n \binom{i - 1}{m - 1}\)
-
\(\binom{n + m}{k} = \sum_{i = 0}^k \binom{n}{i}\binom{m}{k - i}\)(范德蒙德恒等式)
-
\(\sum_{m = 0}^n \binom{n}{m}^2 = \sum_{m = 0}^n \binom{n}{m}\binom{n}{n - m} = \binom{2n}{n}\)
-
\(1 \le x_1 \le \cdots \le x_n \le m\) 的解数为 \(\binom{m + n - 1}{n}\)。
证明:令 \(y_i = x_i + i - 1\),等于 \(1 \le y_1 < \cdots < y_n \le m + n - 1\) 的解数。 -
\(1 \le x_1,\ x_1 + 1 < x_2,\ x_2 + 1 < x_3,\ \ldots,\ x_n \le m\) 的解数为 \(\binom{m - n + 1}{n}\)。
证明:令 \(y_i = x_i - i + 1\),等于 \(1 \le y_1 < \cdots < y_n \le m - n + 1\) 的解数。 -
\(x_1 + x_2 + \cdots + x_n \le m,\ x_i \ge 0\) 的解数为 \(\binom{m + n}{n}\)。
证明:引入 \(x_0 \ge 0\),等于 \(x_0 + x_1 + \cdots + x_n = m\) 的解数。
Lucas & exLucas
若 \(p\) 为质数,\(n, m\) 的 \(p\) 进制展开为 \(n_0p^0 + n_1p^1 + \cdots + n_kp^k\) 和 \(m_0p^0 + m_1p^1 + \cdots + m_kp^k\),则 \(\binom{n}{m} \equiv \prod_{i = 0}^k \binom{n_i}{m_i} \pmod{p}\)。
代码
int binom(int n, int m) {
if (n < m) return 0;
if (n < p) return ll(fac[n]) * ifac[m] % p * ifac[n - m] % p;
return ll(binom(n % p, m % p)) * binom(n / p, m / p) % p;
}
-
\(\binom{n}{m} \equiv 1 \pmod{2} \iff n \& m = m\),因为此时 \(n_i, m_i\) 只可能是 \(00\)、\(10\) 或 \(11\)。
-
\(\binom{n + m}{n} \not\equiv 0 \pmod{p} \iff n + m\) 在 \(p\) 进制加法中不进位。
容斥原理
对于有穷集 \(A_1, \ldots, A_n\),有
证明:对任意元素 \(x\),假设它属于 \(k\) 个集合,它被算的次数为
证毕。
子集反演 & 二项式反演
子集反演:
若 \(F, G\) 只与 \(|S|\) 有关,记 \(f(|S|) = F(S),\ g(|S|) = G(S)\),则子集反演退化为二项式反演:

浙公网安备 33010602011771号