2023-1-28 #29.5 鲜花
最近的做题记录比较鸽,随便发了一个之前的听课记录出来。
主要是过年比较摆吧……争取几天后恢复更新。
回顾 P8340 [AHOI2022] 山河重整,发现互异分拆可以得到一个与普通分拆数类似的观察方向。(事实上这只是一个很经典的组合技巧)

我们考察互异分拆的 Ferrers 图中一条从右上角起始,下步右步交替的格路,其围出的部分与整数分拆中的 Durfee square 很类似。
去除 \(h\times h\) 的 Durfee square 后,两侧放置的均为 \(\leqslant h\) 的整数分拆,因此我们立即得到:
同理,去除这样一个结构后,下方剩余的为 \(\leqslant h\) 的整数分拆,那么就能得到:
这些形式很容易让人联想到与分拆数关系紧密的五边形数定理,不过我并不清楚其中是否存在联系!
upd:超立方体的有向链剖分,比我这个做法强多了。
读 gyr 的论文过程中遇到了一个这样的问题:构造 \(n\) 阶 Hypercube 的最小链覆盖。
根据 Dilworth 定理,最小链覆盖的值等于最长反链,而 Sperner 定理告诉我们,最长反链为 popcount 等于 \(\lfloor\frac n2\rfloor\) 的所有点。
通过构造 Hypercube 相邻层之间关于点数较少一侧的完美匹配,我们很容易得到最小链覆盖的方案。
下面说明完美匹配一定存在,并给出一个理论复杂度较优。(事实上很有可能,朴素 Dinic 也能证明在正则二分图上复杂度更优)
假设左部点点数较少,左部有 \(n\) 个点,每个点度数为 \(d_l\);右部 \(m\) 个点,每个点度数为 \(d_r\),那么 \(nd_l=md_r\),因此 \(d_l\geqslant d_r\)。
完美匹配的存在性比较好说明,使用 Hall 定理,我们只需证明任意左部点子集 \(S\) 都满足 \(|S|\leqslant|N(S)|\)。
连接 \(S\) 的边数量为 \(|S|d_l\),而连接 \(N(S)\) 的边数量为 \(|N(S)|d_r\),前者是后者的子集,因此有 \(|S|d_l\leqslant |N(S)|d_r\),即 \(|S|\leqslant|N(S)|\)。
我们尝试通过补点的方式,使其两侧点数相等,每个点度数相等。
我们给左部补上 \(m-n\) 个点度数等于 \(d_l\) 的点,每次加入一个点都选择右部度数最小的 \(d_l\) 个点与其连边,容易发现右部每个点度数最终都会恰好为 \(d_l\)。
构造这张新图的完美匹配是一个经典问题,Hall 定理;正则二分图的完美匹配 有较为详细的算法流程。
简要概括一下,我们每次随机选择一个左部未匹配点,随机遍历二分图寻找增广路,复杂度期望下为 \(O(n\log n+m)\)。

浙公网安备 33010602011771号