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() 。。。

你可能感兴趣的:(费用流,线性规划)