模拟费用流总结大全

本文总结了模拟费用流在解决贪心问题中的应用,详细介绍了如何通过建立费用流模型来解决诸如股票交易、植树问题、老鼠进洞等经典题目,并通过实例分析了如何利用增量贡献、EK算法等技巧进行求解,提供了具体的操作步骤和优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以系统地解决一系列贪心问题的思想。

 

操作步骤

  • 首先对于一个问题建立费用流模型,注意这时候可以得到问题的凸性(convexity),可以用一些其它方法对问题进行简化(如wqs二分),然后观察费用流模型的特殊性,考虑快速算费用流。

  • 一般而言,可以考虑图的增量对答案的贡献,或者按照EK算法以某种顺序求增广路,注意反向边的贡献(比如负环)。一般用堆来维护,也有时候可以直接维护出一些东西然后做。

  • 将费用流模型和原问题结合起来考虑,往往会比较容易得到一些性质。


例题

CF865D Buy Low Sell High(老鼠进洞·壹)

题意:已知接下来nn天的股票价格,每天你可以买进一股股票,卖出一股股票,或者什么也不做。假设你拥有无限本金,求nn天之后能得到的最大利润。

容易得到费用流模型:相邻点双向(+∞,0)(+∞,0),源点向每个点(1,ci)(1,ci),每个点向终点(1,−ci)(1,−ci)求最小费用可行流。

考虑增量贡献,第一种情况是选择某天买进今天卖出,第二种情况是选择之前卖出的某天换到今天卖出,对应到费用流上就是一条普通的增广路和负环,那么维护一个堆就做完

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值