Codechef June15 ChefBook - 线性规划

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GEOTCBRL/article/details/74779985

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

展开阅读全文

没有更多推荐了,返回首页