模拟费用流
费用流模型是一类非常优秀的模型,但是用于解决费用流问题的常规算法大都比较鸡肋,因此在一些特殊的网络上可以使用模拟费用流的思想来解决此类问题。模拟费用流没有固定的模板,只能算一种思想,在这里只能是大致分类一下。
一种常见的思路直接贪心模拟增广的过程,即模拟 寻找增广路->累计答案->推流 这一过程。
【某模拟赛题】 给定平面上
暴力的建图费用流是平凡的,可以坐标相同的点压缩。
考虑把曼哈顿距离转化成切比雪夫距离(
图中容量全为
模拟费用流,考虑到一条增广路一定形如 S->黑点->中转点->黑点->中转点……->白点->T,并且容量全为
- 求一条最长路
- 对最长路进行增广
具体实现上,我们用
第一步可以暴力建出一个
第二步可以对每一条增广路上的边分情况讨论(因为总长不超过 5)。注意这里的一条“边”实际上相当于原图上两条边(关键点->非关键点->关键点),要维护的东西就是删掉当前的边并加上反向边。
只讨论一半的情况,另一半同理。
:对于所有 删除一条边权为 的边,对于所有 ,加入一条边权为 的边。 :对于所有 ,删掉一条边权为 的边,对于所有 加入一条边权为 的边。
重复这个过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!