组合数学

  • \(\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\),有

\[\left|\bigcup_{i = 1}^n A_i\right| = -\sum_{k = 1}^n (-1)^k\sum_{1 \le i_1 < \cdots < i_k \le n} \left|\bigcap_{j = 1}^k A_{i_j}\right| \]

证明:对任意元素 \(x\),假设它属于 \(k\) 个集合,它被算的次数为

\[-\sum_{i = 1}^k \binom{k}{i}(-1)^i = -\left(\sum_{i = 0}^k \binom{k}{i}(-1)^i - 1\right) = 1 \]

证毕。

子集反演 & 二项式反演

子集反演:

\[G(S) = \sum_{T \subseteq S} F(T) \iff F(S) = \sum_{T \subseteq S} (-1)^{|S| - |T|}G(T) \]

\(F, G\) 只与 \(|S|\) 有关,记 \(f(|S|) = F(S),\ g(|S|) = G(S)\),则子集反演退化为二项式反演:

\[g(n) = \sum_{i = 0}^n \binom{n}{i}f(i) \iff f(n) = \sum_{i = 0}^n \binom{n}{i}(-1)^{n - i}g(i) \]

posted @ 2026-04-01 13:39  Sunsoak  阅读(9)  评论(2)    收藏  举报