【bzoj1927 星际竞速】

题目描述:

  给定N颗星球,M条航道,每颗星球都有一个引力值。你驾驶着一艘飞船,这艘飞船有两种模式,一种是高速行驶模式,另一种是能力爆发模式。高速行驶模式下,只能由一个星球前往引力比他大的星球,并且要花费这条航道权值的时间。能力爆发模式下,可以从一个星球到达任意一个星球,需要花费所到达星球的定位时间。比赛要求从一个和这N个星球没有任何航路的星球出发,然后遍历所有的N个节点恰好一次。现在你要设计一种方案,求出花费时间的最小值。

数据范围:

  1<=N<=800, 0<=M<=15000

题解:

  显然到一个点的方式有两种。花费时间的最小值与小数据就可以知道这题是费用流。

  想想费用是什么吧。一种直接到这个点花定位时间,一种从一个点到另一个点。(一个点只能到一个点)

  于是考虑拆点,S向每个点的x连f=1,w=0的边,每个点的y向T连f=1,w=0的边。这时候最大流就能保证每个点都被跑过。

  S向每个点的y连f=1,w为定位时间的边。把航道在xy中连起来,f=1,w为航道权值的时间。(因为每条边的流为1,所以保证一个点出发只会到一个点)

  费用流即可。

转载于:https://www.cnblogs.com/Dndlns/p/7979350.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值