Codechef June15 ChefBook - 线性规划

  来自2016集训队作业。


  有 2n 个变量 xi,yi ,给定 m 个约束Lixaiybi+WiRi,最大化 ixaiybi


  相当于是有 2m 个约束
  

xaiybiRiWi  ybixaiWiLi

  设 inu,outu 分别为出度、入度,则最优化条件相当于
  
maxuoutuxuinuyu

  这是个线性规划,考虑将其对偶,可以得到
  
(u,v)Exu,vyu,voutu,uV

  
(u,v)Eyu,vxu,vinv,vV

  
min(u,v)E(Ru,vWu,v)xu,v(Wu,vLu,v)yu.v

  将所有的约束加起来,得到 00 ,所以所有的等号必须取到。
  考虑建图,则按照流量平衡,每个变量作为一条边,符号对应出/入流,费用为最优化式子中的系数,按符号往源或汇连容量为常数项的边,跑最小费用最大流得到的就是答案了。
  然后来看怎么出一组解。首先初始的约束是个差分约束系统,可以先判有无解;费用流跑出来的网络里某个变量代表的边有流量也即这个变量大于0,可知原问题对应的约束取到了等号,所以往差分约束里加上这个等式。这样跑出来的就是一组合法的解了。
  要注意答案非负,所以最后对所有变量都减去变量中的最小值。
  时间复杂度。。。 O() 。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值