P3227 [HNOI2013] 切糕
考虑最小割。
对于一个坐标上的点只能选择一个 \(z\) 坐标,将 \(z\) 坐标的费用作为流量顺次连接。
第二个限制条件,先去绝对值,枚举较大值。
再限制较小值,不能小于 \(z-D\),从 \((x,y,z)\) 向 \((x',y',z-D)\) 连 \(inf\) 即可。
方格取数问题
相邻节点之间都有限制,一对限制取两点最小值,跑最小割即可。
将网格线规定限制方向,使每个点只连向源点或汇点,黑白染色即可。
[CEOI 2008] order
最小化费用,经典最小割。
最小割割掉哪一层相当于支付那一层的代价,每一条链只会支付其中一个代价。
将买的花费,租的花费,不做工作的花费,分别建三层即可。
最长k可重线段集问题
与最长 \(k\) 可重区间集问题相似,不同之处是 \(l=r\) 的情况。
考虑不能有自环,处理一个自己连向自己的边,将一个数轴上的点拆为入点和出点即可。
最长不下降子序列问题
思路:看到最长,考虑费用流,魔改只有跑出来最长路时累加答案,过了。
考虑最大流做法,先 \(O(n^2)dp\) 将 \(f_i=1\) 的点与源点连边,\(f_i=\max_j{f_j}\) 的点与汇点连边。
两点之间满足 \(f_i+1=f_j\) 且 \(a_i\le a_j\) 连边。
点有次数限制,拆点即可。