狡兔三窟
题目大意:
有 \(n\) 层,每一层都有 \(k\) 个点,只有相邻的两层之间会有连边,且给定。
设 \(f_{l,r}\) 表示 \(l\) 层到第 \(r\) 层最多能选出来多少不交的路径。
\(\sum_{l = 1}^{n} \sum_{r = l + 1}^{n} f(l,r)\)。
\(n \le 4 \times 10^4, k \le 9\)。
解题思路:
考虑拆 \(f(l,r)\),即要对每个 \(x\) 求出来有多少 \(f(l,r) \ge x\)。
那么枚举 \(x\),注意到前面对对后面的唯一影响是第 \(i\) 层的选点方案,于是 \(dp_{i,S}\) 表示前 \(i\) 个点,第 \(i\) 个点的选点方案为 \(S\) 的最小左端点。
考虑转移时的判定,显然 \(\text{Hall}\) 定理比较合适,因为我们要相当于 \(\text{check}\) 每一个 \(S\) 能匹配的下一个集合。
\(\text{flow and dp}\) 显然都是不合适的。
那么考虑如何 \(\text{check}\) 一个 \(A\) 能否到达 \(B\),设 \(g_{S}\) 表示 \(S\) 向下一层有边的点的集合。
\[\forall_{S \subseteq A} \text{SZ} (g_{S} \text{ AND } B) \ge \text{SZ} S
\]

浙公网安备 33010602011771号