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 = lfloorfrac{sum a}{2} floor),则选择所有大小为 (M) 的子集即达到最大反链。
考虑证明。
LYM 不等式:
记反链中大小为 (i) 的子集数量为 (s_i),有:
[sum_{i=0}^{n}frac{s_i}{inom{n}{i}}leq 1 ]证明:
考虑一条最长链 (emptysube 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) 元集合,最多能选出 (inom{n}{lfloorfrac{n}{2} floor}) 个子集,满足没有任何两个子集之间存在包含关系,。
证明:
不难发现这是一个下界,考虑证明它同时也是上界。
由于 (inom{n}{lfloorfrac{n}{2} floor} geq inom{n}{i}),所以 (sum_{i=0}^{n}s_i/inom{n}{lfloorfrac{n}{2} floor}leqsum_{i=0}^{n}s_i/inom{n}{i}leq 1),得到 (sum s_i leq inom{n}{lfloorfrac{n}{2} floor}),于是它为上界。
然而很可惜的是,我并不会按照这个思路推广(查了 wiki 也不会,水平有限)。
考虑另一种证法(在《Introductory Combinatorics》中的 5.6 写到了这种证法)。
依然只需要证明上界,考虑用 Dilworth 定理转化,只需要找到一个大小为 (inom{n}{lfloorfrac{n}{2} floor}) 的链覆盖。
引入对称链的概念:我们称子集链 (T_1 sube T_2 sube dots sube T_k) 是对称链,当且仅当 (|T_i| + 1 = |T_{i + 1}|) 且 (|T_1| + |T_k| = n)。
注意到每条对称链恰好包含一个大小为 (lfloorfrac{n}{2} floor) 的子集,因此对称链覆盖大小一定为 (inom{n}{lfloorfrac{n}{2} floor})。
归纳构造对称链覆盖,只有一个元素时是平凡的,考虑往已经求出链覆盖的集合中加入元素 (x)。
对于原来的链覆盖中每条对称链 (T_1 sube T_2 sube dots sube T_k),分两种情况:
(1)(k = 1),在新的链集中加入链 (T_1sube T_1cup{x})。
(2)(k eq 1),在新的链集中加入链 (T_1 sube T_2 sube dots sube T_ksube T_kcup {x}) 与 (T_1cup {x} sube T_2cup {x} sube dots sube T_{k-1}cup {x})。
不难发现它仍然是链覆盖(每个子集都不重不漏地被包含在某条链中),且每条链仍然是对称链。
这个证法就比较好推广到多重集上了。
多重集情况的证明:
大致思路一致,归纳构造对称链,每次加入 (a) 个元素 (x)。为了方便,以下记 (k imes x) 表示 (k) 个元素 (x)。
对于链覆盖中每条对称链 (T_1 sube T_2 sube dots sube T_k),依次在新的链集中加入如下的链(如果长度不够了就不管):
[egin{aligned} T_1 sube T_2 sube dots sube T_ksube T_kcup {1 imes x}sube T_kcup {2 imes x}sube dotssube T_kcup {a imes x} \ T_1cup {1 imes x} sube T_2cup {1 imes x} sube dots sube T_{k-1}cup {1 imes x}sube T_{k-1}cup {2 imes x}sube dotssube T_{k-1}cup {a imes x} \ T_1cup {2 imes x} sube T_2cup {2 imes x} sube dots sube T_{k-2}cup {2 imes x}sube T_{k-2}cup {3 imes x}sube dotssube T_{k-2}cup {a imes x} \ dots \ T_1cup {a imes x} sube T_2cup {a imes x} sube dotssube T_{k-a}cup {a imes x} \ end{aligned} ]依然不难发现它仍然是链覆盖,且每条链仍然是对称链。
由于每条对称链都包含恰好一个大小为 (lfloorfrac{sum a}{2} floor) 的子集,因此这就是上界。
之后就是个经典容斥,可以将组合数拆成 (n) 次多项式,然后 meet in the middle 即可。
直接做 (O(2^{n/2}n^2)),不知道能不能 (O(2^{n/2}n)),口胡了个失败的做法(悲)。