1. 程式人生 > >組合數形式的容斥原理

組合數形式的容斥原理

關系 找規律 lam HA 累加 限制 ase post OS

大概地梳理一下組合數形式的幾種常見的容斥,希望能幫助到初學者。

二項式定理

$$
f(n) = \sum_{i = 0} ^ n \binom{n}{i} g(i) \Leftrightarrow g(n) = \sum_{i = 0} ^ n (-1) ^ {n - i} \binom{n}{i} f(i)
$$

alpha(k)

設 $\alpha(k)$ 是欽定滿足 $i$ 個性質的方案數之和,通常 $\alpha(k)$ 可以方便地求出或者表示出,然後考慮利用 $\alpha(k)$ 求目標量(不妨設作 $\beta(k)$)。

第一種想法是利用 $\alpha(k)$ 的信息,直接 DP 求出目標量 $\beta(k)$ 。

第二種想法是 $\beta(k)$ 一定可以表示 $\alpha(k)$ 附帶上容斥系數的累加,考慮求解容斥系數,利用二項式反演將容斥系數表示出來,接著要麽找規律,要麽推式子,要麽直接多項式求逆。本文采用的都是第二種想法。

beta(k)

$\beta(k)$ :恰好滿足 $k$ 個性質的方案數。

設 $\beta(k)$ 與 $\alpha(k)$ 的關系為:

$$
\beta(k) = \sum_{i = 0} ^ n \alpha(i) f(i)
$$

考慮一個滿足 $x$ 個性質的方案,它應該被統計 $[x = k]$ 次,實際上被統計的次數為:

$$
\sum_{i = 0} ^ x \binom{x}{i} f(i)
$$

所以

$$
[x = k] = \sum_{i = 0} ^ x \binom{x}{i} f(i)
$$

根據二項式反演,得

$$
f(x) = \sum_{i = 0} ^ x (-1) ^ {x - i} \binom{x}{i} [i = k] \\
$$

對 $x < k$ 和 $x \ge k$ 進行分類討論,可以推出

$$
f(x) = \begin{cases} 0 & , x < k \\ (-1) ^ {x - k} \binom{x}{k} & , x \ge k \end{cases}
$$

綜上所述,

$$
\beta(k) = \sum_{i = k} ^ n (-1) ^ {i - k} \binom{i}{k} \alpha(i)
$$

gamma(k)

$\gamma(k)$ :至多滿足 $k$ 個性質的方案數。

類似地,設

$$
\gamma(k) = \sum_{i = 0} ^ n \alpha(i) f(i)
$$

$$
[x \le k] = \sum_{i = 0} ^ x \binom{x}{i} f(i)
$$

$$
f(x) = \sum_{i = 0} ^ x (-1) ^ {x - i} \binom{x}{i} [x \le k]
$$

對 $x \le k$ 和 $x > k$ 進行分類討論,解得

$$
f(x) = \begin{cases} \left[ x = 0 \right] & , x \le k \\ (-1) ^ {x + k} \binom{x - 1}{k} & , x > k \end{cases}
$$

綜上所述,

$$
\gamma(k) = \alpha(0) + \sum_{i = {k + 1}} ^ n (-1) ^ {i + k} \binom{i - 1}{k}
$$

lambda(k)

$\lambda(k)$ :恰好滿足 $k$ 的倍數個限制的方案數

$$
[x \equiv 0 \pmod k] = \sum_{i = 0} ^ x \binom{x}{i} f(i)
$$

$$
\begin{aligned}
f(x) & = \sum_{i = 0} ^ x (-1) ^ {x - i} \binom{x}{i} [i \equiv 0 \pmod k] \\
& = \sum_{i = 0} ^ x (-1) ^ {x - i} \binom{x}{i} \frac{1}{k} \sum_{j = 0} ^ {k - 1} (w_k ^ i) ^ j \\
& = \frac{(-1) ^ x}{k} \sum_{j = 0} ^ {k - 1} \sum_{i = 0} ^ x \binom{x}{i} (- w_k ^ j) ^ i \\ & = \frac{(-1) ^ x}{k} \sum_{j = 0} ^ {k - 1} {(1 - w_{k} ^ j)} ^ x
\end{aligned}
$$

綜上所述,

$$
\lambda(k) = \sum_{i = 0} ^ x \alpha(i) \frac{(-1) ^ i}{k} \sum_{j = 0} ^ {k - 1} (1 - w_k ^ j) ^ i
$$

組合數形式的容斥原理