zoj 2676 网络流+01分数规划

题意:有一个n个点的网络,其中有m条光缆(所有的点都被连接,任意两个点之间最多有一条,不存在连接自身的),每条光缆有一定的价值,网络中1为起点,n为终点,现在要求找出一些光缆能分割开1到n,使它们不能相互通信,并且要求花费的和除以光缆数的值最小。输出选择的光缆的编号。

分析:从问题中可以看出一定是0-1分数规划的题目,假设选出光缆的集合M,M为原图的一个割,光缆si∈M,价值为ci,数量k = 1 ,可以推出g(x) = min( ∑c - x*∑k ),因为si是割中的边,将边的值转化为ci-x*k,那么g(x)为原图的最小割。这样就得到了单调关系,对于x的值进行二分,求最小割。求得当g(x)为0的时候的x,也就是花费的和除以光缆数的值最小。求到x值以后,从1点进行搜索,找出所有能走到的点。如果一条边的两个点,一个被遍历到,一个没有被遍历到,那么这条边为一条割边。建图如下。

总结:很巧妙的一道题,看起来无法直接用最小割解决,通过01分数规划对原式变形,转化为了经典的最小割问题。

代码:待补。参考http://www.myexception.cn/network/1928973.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值