Skip to content

Latest commit

 

History

History
54 lines (31 loc) · 3.13 KB

006.会玩的一家人.md

File metadata and controls

54 lines (31 loc) · 3.13 KB

会玩的一家人

题目描述

一家四口(爸爸、妈妈、哥哥、妹妹)晚上去露营,遇到了一个狭窄的小桥,最多只能两个人同时过桥,过桥需要灯光,不然会掉下去,但是只有1个手电筒,在保证安全的前提下,怎样过桥最快?假设爸爸过桥需要1分钟,哥哥过桥需要2分钟,妈妈过桥需要4分钟,妹妹过桥需要5分钟,两个人同时过桥的时间为较慢的人用的时间。

思路解析

因为只有1个手电筒,所以需要有个人过桥以后再把手电筒送回来。首先明确怎样才能节约时间,无非就是以下两点:

  1. 送手电筒的人速度够快。
  2. 过桥的时候最慢的和第二慢的一起过。

以上两点都属于贪心的思路,都以节约时间为目的,我们针对以上两点中的情况来分别讨论。

为了表述更直观,他们一家人单独过桥时间如下表:

爸爸 哥哥 妈妈 妹妹
1分钟 2分钟 4分钟 5分钟

方法一:每次让速度最快的人送手电筒。

  1. 爸爸和哥哥一起过桥,然后爸爸再折回来送手电筒,总共花费 2 + 1 = 3 分钟。
  2. 爸爸和妹妹一起过桥,然后爸爸再折回来送手电筒,总共花费 5 + 1 = 6 分钟。
  3. 爸爸和妈妈一起过桥,总共花费 4 分钟。

这样一家人过桥成功需要花费 3 + 6 + 4 = 13 分钟。

方法二:保证最慢的和第二慢的一起过桥。

要让最慢的和第二慢的一起过桥,过桥后如果让第二慢的折回来送手电筒,那这样就没必要让他俩一起过桥了,起不到节约时间的效果。所以需要让相对快一点的先过去,让他们来送手电筒。

  1. 爸爸和哥哥一起过桥,然后爸爸折回来送手电筒,总共花费 2 + 1 = 3 分钟。
  2. 最慢的妹妹和第二慢的妈妈一起过桥,哥哥折回来送手电筒,总共花费 5 + 2 = 7 分钟。
  3. 爸爸和哥哥一起过桥,总共花费 2 分钟。

这样一家人过桥成功需要花费 3 + 7 + 2 = 12 分钟。

综上可知,方法二相对来说更快一点,只需要12分钟就可以过桥。

当然,只是在当前这种情况下方法二更快一点,方法一在什么情况下更快呢?

假设爸爸的过桥时间为 a 分钟,哥哥过桥时间为 b 分钟,妈妈为 c 分钟,妹妹为 d 分钟,这个时候他们一家人单独过桥时间如下表,其中 a > b > c > d

爸爸 哥哥 妈妈 妹妹
a分钟 b分钟 c分钟 d分钟

如果用方法一则需要 2a + b + d + c 分钟,如果用方法二则需要 a + 3b + d,要满足方法一时间更短那么 2a + b + d + c < a + 3b + d,即 a + c < 2b,换句话说就是如果哥哥过桥时间的两倍比爸爸和妈妈分别过桥的总时间多,就用方法一。在本题中 (a + c = 5) > (4 = 2b) 所以使用方法二。

如果过桥的人数大于4,有6个人需要过桥,过桥时间依次为a < b < c < d < e < f,聪明的你能找到最优方案吗?