标签:empty cto 问题: mat intro begin 就是 set play
DAG 上的可重最小链覆盖,转化成偏序集的最大反链,其中偏序 \(\mathrm x \leq \mathrm y\) 当且仅当每一维 \(x_i \leq y_i\)。
以下记 \(a_i = p_i - 1\)。考虑如下的等价问题:
给定包含 \(n\) 种元素的多重集 \(S\),其中 \(i\) 种元素出现 \(a_i\) 次。
定义子集之间的偏序为 \(\subseteq\),求最大反链。
当 \(a_i = 1\) 时即 Sperner 定理。事实上,该定理可以推广得到如下结果:
记 \(M = \lfloor\frac{\sum a}{2}\rfloor\),则选择所有大小为 \(M\) 的子集即达到最大反链。
考虑证明。
LYM 不等式:
记反链中大小为 \(i\) 的子集数量为 \(s_i\),有:
\[\sum_{i=0}^{n}\frac{s_i}{\binom{n}{i}}\leq 1 \]证明:
考虑一条最长链 \(\empty\sube T_1 \sube \dots \sube T_n = S\),其中 \(|T_i| = i\)。
包含某个大小为 \(k\) 的子集 \(P_k\) 的最长链数量为 \(k!(n-k)!\)。所有最长链总数为 \(n!\)。
对于一条反链,没有两个子集在同一个最长链上,所以有不等式:
\[\sum_{i=0}^{n} i!(n-i)!s_i \leq n! \]得证。
Sperner 定理:
\(n\) 元集合,最多能选出 \(\binom{n}{\lfloor\frac{n}{2}\rfloor}\) 个子集,满足没有任何两个子集之间存在包含关系,。
证明:
不难发现这是一个下界,考虑证明它同时也是上界。
由于 \(\binom{n}{\lfloor\frac{n}{2}\rfloor} \geq \binom{n}{i}\),所以 \(\sum_{i=0}^{n}s_i/\binom{n}{\lfloor\frac{n}{2}\rfloor}\leq\sum_{i=0}^{n}s_i/\binom{n}{i}\leq 1\),得到 \(\sum s_i \leq \binom{n}{\lfloor\frac{n}{2}\rfloor}\),于是它为上界。
然而很可惜的是,我并不会按照这个思路推广(查了 wiki 也不会,水平有限)。
考虑另一种证法(在《Introductory Combinatorics》中的 5.6 写到了这种证法)。
依然只需要证明上界,考虑用 Dilworth 定理转化,只需要找到一个大小为 \(\binom{n}{\lfloor\frac{n}{2}\rfloor}\) 的链覆盖。
引入对称链的概念:我们称子集链 \(T_1 \sube T_2 \sube \dots \sube T_k\) 是对称链,当且仅当 \(|T_i| + 1 = |T_k|\) 且 \(|T_1| + |T_k| = n\)。
注意到每条对称链恰好包含一个大小为 \(\binom{n}{\lfloor\frac{n}{2}\rfloor}\) 的子集,因此对称链覆盖大小一定为 \(\binom{n}{\lfloor\frac{n}{2}\rfloor}\)。
归纳构造对称链覆盖,只有一个元素时是平凡的,考虑往已经求出链覆盖的集合中加入元素 \(x\)。
对于链覆盖中每条对称链 \(T_1 \sube T_2 \sube \dots \sube T_k\),分两种情况:
(1)\(k = 1\),在链覆盖中加入链 \(T_1\sube T_1\cup\{x\}\)。
(2)\(k\neq 1\),在链覆盖中加入链 \(T_1 \sube T_2 \sube \dots \sube T_k\sube T_k\cup \{x\}\) 与 \(T_1\cup \{x\} \sube T_2\cup \{x\} \sube \dots \sube T_{k-1}\cup \{x\}\)。
不难发现它仍然是链覆盖(每个子集都不重不漏地被包含在某条链中),且每条链仍然是对称链。
这个证法就比较好推广到多重集上了。
多重集情况的证明:
大致思路一致,归纳构造对称链,每次加入 \(a\) 个元素 \(x\)。为了方便,以下记 \(k\times x\) 表示 \(k\) 个元素 \(x\)。
对于链覆盖中每条对称链 \(T_1 \sube T_2 \sube \dots \sube T_k\),依次加入如下的链(如果长度不够了就不管):
\[\begin{aligned} T_1 \sube T_2 \sube \dots \sube T_k\sube T_k\cup \{1\times x\}\sube T_k\cup \{2\times x\}\sube \dots\sube T_k\cup \{a\times x\} \T_1\cup \{1\times x\} \sube T_2\cup \{1\times x\} \sube \dots \sube T_{k-1}\cup \{1\times x\}\sube T_{k-1}\cup \{2\times x\}\sube \dots\sube T_{k-1}\cup \{a\times x\} \T_1\cup \{2\times x\} \sube T_2\cup \{2\times x\} \sube \dots \sube T_{k-2}\cup \{2\times x\}\sube T_{k-2}\cup \{3\times x\}\sube \dots\sube T_{k-2}\cup \{a\times x\} \\dots \T_1\cup \{a\times x\} \sube T_2\cup \{a\times x\} \sube \dots\sube T_{k-a}\cup \{a\times x\} \\end{aligned} \]依然不难发现它仍然是链覆盖,且每条链仍然是对称链。
由于每条对称链都包含恰好一个大小为 \(\lfloor\frac{\sum a}{2}\rfloor\) 的子集,因此这就是上界。
之后就是个经典容斥,可以将组合数拆成 \(n\) 次多项式,然后 meet in the middle 即可。
直接做 \(O(2^{n/2}n^2)\)。注意到合并是个卷积,可以先代点值最后插值得到 \(O(2^{n/2}n)\) 的做法。
标签:empty cto 问题: mat intro begin 就是 set play
原文地址:https://www.cnblogs.com/Tiw-Air-OAO/p/14653237.html