CF708D Incorrect Flow
巧妙建模题。
题意:给定一张网络和一个流,但流不一定正确。可以花费
的代价,使某条边容量 ,或者使某条边流量 。问最小代价使流正确。
题面非常漂亮。而且网络流的问题也是用网络流解。
考虑一条边,初始容量
注意到如果
把
-
的边。记两端是 。如果
减小了,相当于退流,于是连边 。如果
,相当于在合法范围内增大流,于是连边 。如果
, 就要一起增加,于是连边 。 -
的边。记两端是 。因为要保证最终流量
容量,一开始直接让 退掉 的流量。将 累加进答案里。如果
,相当于一开始不让 减小到 ,而是减小到最终的 ;而是让 增加。一来一去费用就抵消了,于是连边 。如果
,就是一开始减小后继续减小。于是连边 。如果
,连边 。
最小费用可行流。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步