组合数形式的容斥原理

Posted sdchr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组合数形式的容斥原理相关的知识,希望对你有一定的参考价值。

大概地梳理一下组合数形式的几种常见的容斥,希望能帮助到初学者。

二项式定理

$$
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
$$

以上是关于组合数形式的容斥原理的主要内容,如果未能解决你的问题,请参考以下文章

游戏里面的容斥原理

女神的微笑---------------多重集的组合数,容斥原理

专题计数问题(排列组合,容斥原理,卡特兰数)

bzoj 4767 两双手 - 动态规划 - 容斥原理

放棋子:组合数/dp/容斥原理

组合数学,容斥原理与反演