POJ 1700 解题报告——Crossing River:求过河的最少时间问题

        题目是说有N个人用一条船过河,船每次最多只能载2人,所以得多次来回穿梭才能将所有人运过河。为了减少所花时间,一般两人一起坐船过河,然后其中较快的一人划回来。

当N = 1,2 时,直接过河;

当N = 3 时,最快的人分两趟将另两人运过河;

当N >= 4 时:因一次可以载两人过河,故可以两人过河看作一个基本单位。每次用最短时间把最慢的两人运过河后,直至剩余人数小于4。设当前N人中最快与次快的两人所用时间分别为a与b,最慢与次慢的两人所用时间分别为z与y。为了让两人过河的时间最短,可以采取两种策略:1. 让当前最快的人分两次把两人运过河,最快的人两次都回来,此时用时为 z + a + y + a = 2a + y + z;2. 让最快的与次快的一块过河,然后最快(或次快)的划回来,接着最慢和次慢的一块过河,达到后让先前到达的次快(或最快)的划回来,此时用时为 b + a + z + b = a + 2b 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值