专栏文章

AGC031E 题解

AT_agc031_e题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip8n372
此快照首次捕获于
2025/12/03 07:57
3 个月前
此快照最后确认于
2025/12/03 07:57
3 个月前
查看原文
首先一件珠宝的选取与否无法同时对四个限制作出回应,所以单纯以网络流上的一个节点代表一个珠宝是否选取是行不通的。于是可以考虑对所有横坐标以及纵坐标分别建图。设坐标为 xx 的点为 cxc_x,则对于一个位于 (x,y)(x,y),价值为 vv 的珠宝,建边 (cx,cy,1,v)(c_x,c_y,1,v)
如果每一维只有小于等于某坐标最多多少个的限制,那么大可以把每个坐标限制建一个点 pxp_x。流入该点的珠宝可以选择去往限制 px1p_{x-1} 以达到更小的坐标,或者直接兑现坐标为 xx。具体地,假设小于等于 xx 的至多 limx\lim_x 个点,那么就连接 (px,px1,limx1,0)(p_x,p_{x-1},\lim_{x-1},0)。特别地,需要连接 (S,pn,limn,0)(S,p_n,\lim_n,0),即代表至多有 limn\lim_n 个点通过此进入选择。除此之外,连接 (px,cx,+,0)(p_x,c_x,+\infty,0),代表可以有任意个点选择 cxc_x 作为该维坐标。跑最大费用最大流即可。
但是现在的问题是同时具有 \le 型限制以及 \ge 型限制,显然一侧实点不可能两侧都处理坐标限制,因为它还要作为二分图上的一侧点,连接二分图上的另一侧点。
考虑将限制转化为坐标从小往大排序的第 xx 个点的坐标 \ge 限制值枚举选择的珠宝数量。显然我们可以解出坐标从小到大排序的第 xx 个点的范围。考虑对于每一维重新建图,把 pip_i 设定为从小到达第 ii 个珠宝,其向其可以选择的坐标 xx 连边 (pi,cx,1,0)(p_i,c_x,1,0)。显然每一种合法方案都可以算上,而建图也恰好保证了所有方案都合法。于是跑最大费用最大流即可。
另一维同理。
总结一下建图:假设两维的珠宝点为 ci,djc_i,d_j,坐标点为 px,qyp_x,q_y,则有以下建图:
对于每一个 ii 建立 (S,ci,1,0)(S,c_i,1,0),对于每一个点 jj 建立 (dj,T,1,0)(d_j,T,1,0)
如果第 ii 个珠宝的 xx 坐标属于 [lxi,rxi][lx_i,rx_i],那么对于每一个 i[lxi,rxi]i' \in [lx_i,rx_i] 建立 (ci,pi,1,0)(c_i,p_{i'},1,0)。如果第 jj 个珠宝的 yy 坐标属于 [lyj,ryj][ly_j,ry_j],那么对于每一个 j[lyj,ryj]j' \in [ly_j,ry_j] 建立 (qj,dj,1,0)(q_{j'},d_j,1,0)
如果有一个珠宝坐标为 (x,y,v)(x,y,v),那么建立 (px,qy,1,v)(p_x,q_y,1,v)

评论

0 条评论,欢迎与作者交流。

正在加载评论...