博主的 BiBi 时间

这应该是本蒟蒻的第一篇学习笔记吧。

定义与结论

FMT

定义

\[f(S)=\sum_{S'\in S}g(S') \]

FMI

则有

\[g(S)=\sum_{S'\in S}(-1)^{|S|-|S'|}*f(S') \]

证明

不妨设集合 \(x,y,z\)\(x,y,z\) 集合各自大小为 \(a,b,c\)(这里的集合大小是二进制下一的个数)。

我们知道,若将后面的结论带入前面的式子之后等式成立,那么这个结论是正确的。

\[\sum_{y\in x} g(y)=\sum_{y\in x} \sum_{z\in y} (-1)^{b-c}*f(z) \]

仔细观察这个式子,我们发现 \(x\) 是固定的,我们转而考虑每一个 \(z\) 的情况(因为后面式子只和 \(y\) 的大小有关)。

对于每个 \(z\),应该有 \(C(a-c,b-c)\) 种方案(\(b\) 就是枚举 \(y\) 的大小,\(C(a-c,b-c)\) 就是 \(b\) 大小的 \(y\) 的可能情况)。

令(这个设置其实是为了防止后文误解)

\[t=\sum_{y\in x} g(y) \]

那么就有:

\[t=\sum_{z\in x} f(z)*\sum_{b=c}^{a}C(a-c,b-c)*(-1)^{b-c} \]

式子可以改写为:

\[t=\sum_{z\in x} f(z)*\sum_{b=c}^{a}C(a-c,b-c)*(-1)^{b-c}*1^{a-b} \]

二项式定理得:

\[t=\sum_{z\in x} f(z)*0^{a-c} \]

显然只有当 \(a=c\) 时才会取到 \(f(z)\) 的值,又因为 \(z\in x\),所以此时 \(x=z\),那么得出 \(t=f(x)\)

所以结论成立。

另外记录一个有趣的小证明(这个证不了全部)。其实结论就是当 \(a-c\) 为奇数时,后面那一坨 \(f(z)\) 的系数为 \(0\)

首先有 \(C(a-c,b-c)=C(a-c,a-c-(b-c))=C(a-c,a-b)\)

你可以把 \(b\) 看作在区间 \([c,a]\) 中游走的点,当 \(d(a,b)=d(b,c)\) 时,\(C\) 值相等(这不是废话)。然而此时 \(-1\) 的指数的奇偶性明显不同。(实在不行可以看图)

c b     b' a
1 2 3 4 5  6

代码实现

相信自己,我先咕为敬
posted on 2020-06-13 22:18  Oxide  阅读(355)  评论(1编辑  收藏  举报