最大流等于最小割,因此问题等价于删除最少的点使得第 $i$ 层和第 $j$ 层不连通。
先考虑如何计算 $f(1,j)$。设 $\mathrm{dp}(j,S)$ 表示第 $j$ 层的点只有 $S$ 与第一层连通,最少需要删除的点数。转移时先从 $S$ 转移到 $j+1$ 层中和 $S$ 相邻的点集,然后再依次考虑删除第 $j+1$ 层的点。时间复杂度 $O(n2^kk)$。
要求出所有 $f(i,j)$ 的和,注意到它关于 $i$ 是单调不减的,因此可以重新设 $\mathrm{dp}(j,S,c)$ 表示最大的 $i$,满足删除 $c$ 个点能使得第 $j$ 层只有 $S$ 与第 $i$ 层连通。时间复杂度 $O(n2^kk^2)$。
此外,这个问题还存在 $O(n\cdot \mathrm{poly}(k))$ 的增广路做法。首先拆点,转化成标准的网络流模型。首先从第一层开始增广,每一次都尽可能增广到最后面的层。统计答案之后,忽略第一层的点,从第二层开始。注意到如果第二层的某一个点已经被增广,这条增广路一定不可能延伸到更远,因此每次其实都是从某条增广路的末尾开始。假设增广的长度是 $l$,则这次增广的复杂度为 $O(lk^2)$。而增广的总长度不超过 $nk$,故总复杂度 $O(nk^3)$。似乎可以用压位的方法做到 $O(nk^2)$。