poj-1700

题目链接

题意简述: 有N个人要过河,只有一艘船最多承载两个人,第i个人过河有时间T_i,两个人一组过河的时间由较长那个人的时间确定,不要忘记算船回来的时间,求过河的最短时间。

题意分析:如果有很多人,考虑最慢的那个人应该如何过河,从河岸A到河岸B(记做A->B): 如果他和某一个人组队过河,那么最佳人选是次慢的那个人(A->B),对于船的返回,最好是让最快的那个人划回去(B->A)。那么思考最快的人是如何到对岸了呢?最佳的选择是和次快的人一起划过去(A->B),对于划回来(B->A),最好是由最快或次快划回去,留下来的那个人(最快或次快)将最慢和次慢的船划回去。但是另外一种情况就是用最快的人将最慢和次满的人分别送过去,这样就将原问题化成了规模为n-2的问题了。两种思路进行比较就是最佳思路。

贪心策略:

n >= 4 :考虑”最快速度的人将最慢和次慢的人送过去”和”最慢和次慢的一起过去,然后最快次快的一起过去,然后最快次快的分别回来“两种的比较。

n==3:速度设为a<=b<=c,a先将c从A送至B,然后a从B->A,最后a和b一起A->B。

n==2:一起过去。

n==1:一个人过去。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值