狡兔三窟

题目大意:

\(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 \]

posted @ 2026-03-23 00:25  positive_deviation  阅读(0)  评论(0)    收藏  举报