不怪那天太冷 泪滴水成冰;春风也一样 没吹进凝固的照片。

· · 题解

P3552 [POI2013]SPA-Walk 题解。

主要是补充一下第一个定理的证明。

还是先简述总流程。

定理 1. 对于 n 维超立方体上的点,将其划分为两个不交集合,则两个集合之间的边数不少于两集合大小的 \min

定理 2. 在 n 维超立方体上删去 k 个点后最多只有一个点数大于 n\times k 的连通块。

根据以上两个定理,尝试从 ST 分别出发 dfs,如果找到 n\times k+1 个点,说明其在大连通块内,退出。否则说明在小连通块内,看找到 T 没有即可。如果两边都没找到退出,那么若 ST 都找到至少 n\times k+1 个点则均在唯一大连通块内,否则不在同一连通块。

最后证明两个定理。

证明 1. 对于两个超立方体上的点,定义其之间的特殊路径为将其二进制表示后,从前往后依次更改不相同的维度所形成的路径。
例如 \text{SP}(1001\to 0100) = 1001\to 0001\to 0101\to 0100

对于任意一条边 x\to y,经过其的特殊路径数为 2^{n-1}。因为边只改了一个维度,且起点在该维度及其后与 x 相同,终点在该维度及其后与 y 相同,所以有 n-1 个位置可以自由选择。

对于两个不交集合 ST,不妨设 |S|\le |T|,则集合间的特殊路径数为 |S||T|=|S|(2^n-|S|)|S|\le {2^n\over 2},每条特殊路径至少经过一条集合之间的边,所以边数 \ge {|S|(2^n-|S|)\over 2^{n-1}}\ge {|S|2^{n-1}\over 2^{n-1}}=|S|

证明 2. 考虑反证法。设存在两集合都大于 n\times k 个点,根据前述结论它们之间至少有 $n\times k+1