容斥的一点性质

容斥原理的广泛性证明

1. 基本定义

设全集为 \(U\),给定 \(k\) 个限制条件 \(C_1, C_2, \ldots, C_k\),每个条件 \(C_i\) 对应集合 \(A_i \subseteq U\)

2. 目标

计算满足至少一个条件的元素数量:
\(\left| \bigcup_{i=1}^k A_i \right|\)

3. 容斥公式

\[\left| \bigcup_{i=1}^k A_i \right| = \sum_{i=1}^k |A_i| - \sum_{1 \leq i < j \leq k} |A_i \cap A_j| + \sum_{1 \leq i < j < l \leq k} |A_i \cap A_j \cap A_l| - \cdots + (-1)^{k+1} \left| \bigcap_{i=1}^k A_i \right| \]

4. 证明(归纳法)

基例(k=1)
\(\left| A_1 \right| = |A_1|\) 显然成立。

归纳假设
假设对于 \(k = m\) 时公式成立。

归纳步骤(k=m+1)
\( \begin{aligned} \left| \bigcup_{i=1}^{m+1} A_i \right| &= \left| \left( \bigcup_{i=1}^m A_i \right) \cup A_{m+1} \right| \\ &= \left| \bigcup_{i=1}^m A_i \right| + |A_{m+1}| - \left| \left( \bigcup_{i=1}^m A_i \right) \cap A_{m+1} \right| \\ &= \left( \sum_{i=1}^m |A_i| - \sum_{1 \leq i < j \leq m} |A_i \cap A_j| + \cdots \right) \\ &\quad + |A_{m+1}| \\ &\quad - \left( \sum_{i=1}^m |A_i \cap A_{m+1}| - \sum_{1 \leq i < j \leq m} |A_i \cap A_j \cap A_{m+1}| + \cdots \right) \end{aligned} \)

5. 应用实例

问题:计算不包含固定权重的方案数。

解法

  1. 设固定权重集合为 \(T = \{a_{x_1}, \ldots, a_{x_k}\}\)
  2. 对每个子集 \(S \subseteq T\)
    • 计算偏移量 \(w = \sum_{a \in S} a\)
    • 计算符号 \((-1)^{|S|}\)
    • 累加 \((-1)^{|S|} \cdot f(L - w, R - w)\)

公式表达
\( \text{ans} = \sum_{S \subseteq T} (-1)^{|S|} \cdot f(L - w(S), R - w(S)) \)

注:本证明展示了容斥原理如何通过系统性的加减操作实现精确计数,其核心在于通过子集枚举和符号控制来保证计数的不重不漏。

posted @ 2025-07-19 16:05  NeeDna  阅读(13)  评论(0)    收藏  举报