考虑将限制转化为坐标从小往大排序的第 x 个点的坐标 \ge 限制值。枚举选择的珠宝数量。显然我们可以解出坐标从小到大排序的第 x 个点的范围。考虑对于每一维重新建图,把 p_i 设定为从小到达第 i 个珠宝,其向其可以选择的坐标 x 连边 (p_i,c_x,1,0)。显然每一种合法方案都可以算上,而建图也恰好保证了所有方案都合法。于是跑最大费用最大流即可。
另一维同理。
总结一下建图:假设两维的珠宝点为 c_i,d_j,坐标点为 p_x,q_y,则有以下建图:
对于每一个 i 建立 (S,c_i,1,0),对于每一个点 j 建立 (d_j,T,1,0)。
如果第 i 个珠宝的 x 坐标属于 [lx_i,rx_i],那么对于每一个 i' \in [lx_i,rx_i] 建立 (c_i,p_{i'},1,0)。如果第 j 个珠宝的 y 坐标属于 [ly_j,ry_j],那么对于每一个 j' \in [ly_j,ry_j] 建立 (q_{j'},d_j,1,0)。