【每日算法】贪心法过河

这篇博客探讨了一个n人过河问题,利用贪心策略优化时间。通过分析不同组合过河的时间消耗,提出了先送最慢两人过河的策略,并证明了这一策略的最优性。在n=2或3的情况下,有更直观的最优解决方案。博客还讨论了如何改进贪心策略以确保全局最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意:

有n个人要过一条河,每个人过河都需要一个时间aiai,有一艘船,每次过河只能最多装两个人。两个人划船过河所需的时间都取决于过河时间长的那个人。比如,A,B两人过河所需时间分别为a,b,那么,他们成一条船过河所需的时间为:max{a,b}。现在让你安排一个过河方案,让所有人用最短的时间全部过河。

问题分析:

首先,我们先来研究一个问题,就是在没过河的人有4个及4个以上的情况下,我们设其中四人为a、b、c、d,并且所需时间a<b<c<d,那么,我现在想让c、d过河,然后再让船回到过河前的位置,准备好继续送其他的人过河。那么我这里有两种运载方式:

1.过河顺序为:ac、a、ad、a 时间消耗:t1=2a+c+d

2.过河顺序为:ab、a(b)、cd、b(a) 时间消耗:t2=a+2b+d

t1−t2=a+c−2b

这也就是说,选择两种方案的哪一种,和a+c−2b的值有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值