二项式定理&二项式反演
内容
二项式定理
即 \((a+b)^n = \sum\limits_{i=0}^{n}a^{i}b^{n-i}\binom{n}{i}\)。
二项式反演
将 \(a=1, b=-1\) 代入二项式定理可得推论式 \(\sum\limits_{i=0}^{n} (-1)^{n-i}\binom{n}{i} = [n=0]\)。
分离式:\(\binom{n}{m}\binom{m}{k} = \binom{n}{k}\binom{n - k}{m - k}\),根据组合意义易证。
现有反演: \(f(n) = \sum\limits_{i=0}^{n} \binom{n}{i} g(i) \Leftrightarrow g(n) = \sum\limits_{i=0}^{n} (-1)^{n-i} \binom{n}{i} f(i)\)。
证明
利用推论式与分离式进行证明。
两个个基本形式:
-
钦定意义下至多转换为恰好:\(f(n) = \sum\limits_{i=0}^{n} \binom{n}{i} g(i) \Leftrightarrow g(n) = \sum\limits_{i=0}^{n} (-1)^{n-i} \binom{n}{i} f(i)\)。
-
钦定意义下至少转换为恰好:\(f(m) = \sum\limits_{i=m}^{n} \binom{i}{m} g(i) \Leftrightarrow g(m) = \sum\limits_{i=m}^{n} (-1)^{i-m} \binom{i}{m} f(i)\)。
例题(持续补充)
ABC423F Loud Cicada
- \(g(m)\) 表示恰好 \(m\) 只蝉。
- \(f(m)\) 表示至少 \(m\) 只蝉。
有 \(f(m) = \sum\limits_{i=m}^{n} \binom{i}{m} g(i) = \sum_{\mathrm{popcount(S)} = m} \lfloor \frac{Y}{\mathrm{lcm}_{u\ \in\ S}\ a_u} \rfloor\)。
反演就完了。
有人可能疑惑,这里也是算的 \(\mathrm{popcount(S)} = m\),为什么是至少呢?因为其他的蝉叫不叫不确定。
P4859 已经没有什么好害怕的了
- \(g(m)\) 表示恰好有 \(m\) 对 \(a_i > b_i\)。
- \(f(m)\) 表示至少有 \(m\) 对 \(a_i > b_i\)。
先给 \(a, b\) 序列分别排序,\(f(m)\) 不好直接求,考虑定义 \(dp_{i, j}\) 表示在 \(a\) 中前 \(i\) 个数选出 \(j\) 对 \(a > b\) 的方案数。
- 不考虑 \(a_i\),显然 \(dp_{i,j} = dp_{i-1, j}\)。
- 考虑 \(a_i\),令 \(p\) 表示 \(a_i > b\) 的 \(b\) 的个数,显然 \(dp_{i, j} = dp_{i-1, j-1} \times (p - j + 1)\)。
这个你可以双指针求。
所以 \(f(m) = dp_{n, m}(n - m)!\),最后要求 \(g(\frac{n + k}{2})\),自证不难。
P10596 BZOJ2839 集合计数
之前贺题解写的。
- \(g(m)\) 表示交集恰好有 \(m\) 个元素。
- \(f(m)\) 表示交集至少有 \(m\) 个元素。
先钦定哪 \(m\) 个元素,总共 \(\binom{n}{m}\) 种,所有包含某 \(m\) 个元素的子集总共有 \(2^{n - m}\) 个,自证不难。
所以 \(f(m) = \binom{n}{m} \left ( 2^{2^{n - m}} - 1\right )\),用欧拉定理然后反演一下就行。
P6076 [JSOI2015] 染色问题
神秘套娃题,看题看不出来可以用二项式反演。
- \(g(n, m, c)\) 表示在 \(n\times m\) 的矩形中,恰好用 \(c\) 种颜色满足要求。
- \(f_1(n, m, c)\) 表示在 \(n\times m\) 的矩形中,至多用 \(c\) 种颜色满足其他要求。
- \(f_2(n, m, c)\) 表示在 \(n \times m\) 的矩形中,至多用 \(c\) 种颜色,至多有 \(m\) 列有颜色,且恰好有 \(n\) 行有颜色。
- \(f_3(n, m, c)\) 表示在 \(n \times m\) 的矩形中,至多用 \(c\) 种颜色,至多有 \(m\) 列有颜色,至多有 \(n\) 行有颜色。
可以看出,这是一个接着一个把恰好转换为至多,所以要套用三次反演。
所以有:
\(f_3(n, m, c) = \sum\limits_{i = 0} ^ {n} \binom{n}{i} f_2(i, m, c) \Leftrightarrow f_2(n, m, c) = \sum\limits_{i=0}^{n} (-1)^{n-i} \binom{n}{i} f_3(i, m, c)\)。
\(f_2(n, m, c) = \sum\limits_{i = 0} ^ {m} \binom{m}{i} f_1(n, i, c) \Leftrightarrow f_1(n, m, c) = \sum\limits_{i=0}^{m} (-1)^{m-i} \binom{m}{i} f_2(n, i, c)\)。
\(f_1(n, m, c) = \sum\limits_{i = 0} ^ {c} \binom{c}{i} g(n, m, i) \Leftrightarrow g(n, m, c) = \sum\limits_{i=0}^{c} (-1)^{c-i} \binom{c}{i} f_1(n, m, i)\)。
答案即为 \(g(n, m, c)\)。
考虑计算 \(f_3(n, m, c)\),显然每个格子、行列之间不受约束,只有本身受颜色约束,所以 \(f_3(n, m, c) = (c + 1)^{nm}\),即上色与不上色。
所以 \(f_2(n, m, c) = \sum\limits_{i=0}^{n} (-1)^{n-i} \binom{n}{i} (c + 1) ^ {im}\)。
然后一直往上带到 \(g\) 为止,有时间复杂度 \(O(nmc \log(nmc))\),已经可以过了。但是如果你注意到 \(\sum\limits_{i=0}^{n} (-1)^{n-i} \binom{n}{i} (c + 1) ^ {im} = ((c+1)^m - 1)^n\),可以变为 \(O(nm\log(nmc))\)。
当然也可以参考这篇题解只用反演两次,上面的等式在里面也有原因,这里不多写了。
P10597 BZOJ4665 小 w 的喜糖
- \(g(m)\) 表示恰好 \(m\) 个人与原来糖种类相同。
- \(f(m)\) 表示钦定 \(m\) 个人与原来糖种类相同。
原题中描述方案不同的是某个人糖的种类不同是不好设计的,假设糖本质不同,最后只需要除以 \(\prod to_i !\) 即可。(有用的技巧)
设 \(dp_{n, m}\) 表示前 \(n\) 种糖中,钦定 \(m\) 人与拿到与原来种类相同的方案数。
可以得到 \(dp_{i,j} = \sum\limits_{k = 0} ^ {\min(j, to_i)} dp_{i-1, j-k} \binom{to_i}{k} A_{to_i}^{k}\)。即枚举新钦定 \(k\) 个人,于是要从这 \(to_i\) 个人中选出 \(k\) 个,然后从 \(to_i\) 个糖中选出 \(k\) 个,任意顺序给新钦定的这 \(k\) 人。
显然 \(f(m) = dp_{n, m} \times (n - m)!\)。
反演一下就行了,答案为 \(\frac{g(0)}{\prod to_i!}\)。

浙公网安备 33010602011771号