hdu 3667 /2010哈尔滨赛区H题 费用与流量为非线性关系/费用流

题意: 在一般费用流题目修改:路过某路,每x单位流量需要花费 ai*x^2(ai为给定的系数)。

开始的的时候,一看只不过是最后统计费用上在修改罢了,一看样例,发现根本没那么简单(ps:以后每次敲代码前先看样例能不能过!),因为是成平方关系,每次一流量增广的话,下次未必最优!于是想到我每次只增长一个单位流量!每次增长一个单位之后,该路径上的所有边的费用边改为i^2-(i-1)^2,(第一次肯定增广a,其次的话3a.5a.7a.。。。由于第一次已经增广了,和为第i次i平方即可!)如此,符合题意!一提交Wa!扫了一遍代码,发现反向边的费用没有改!于是修改:想到反向边的本质是提供后悔机会,而我控制的是每次增长一个单位!后悔一次的话,必然是付上一次的费用!所以,与平时不同:初始化反向边费用也为W(不是-W),每次增广修改为-1a.-3a.-5a,这样控制比正向边慢一步!(其实这才是反向边的本质作用,只是平时时候费用是不变的,所以无需如此!)提交后AC!(ps:感觉对费用流算法内部逻辑更加清晰了有木有)

后来看了网上的题解:看数据流量为<5,所以每条边拆为流量为1的,每条费用也如此递增。其次,这样本质是还是每次增广流量1,可谓异曲同工。不过拆边的思想值得借鉴!

额外收获:1:注意看数据范围,有时候可以从上面思考算法。2:敲代码前先过一遍样例,或许有思路启发!</

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值