商人骆驼运水

有一道校招笔试题:

一个商人有3000瓶水,他要赶着骆驼穿过1000公里的沙漠去卖掉这些水。已知骆驼一次性可驮1000瓶水,而商人和骆驼每走一公里又要消耗一瓶水。商人可卖出多少瓶水?

A. 0瓶       B.  300瓶       C.  500瓶        D.800瓶


首先:你们可以自己做一下,想象答案,提前约定是,商人穿过沙漠不用考虑是否回来(不然就是0瓶了,回不来了)。

其次,答案是不对的,这个我接下来会解释。


最先我们的思路是把水运到最远的地方,因为有3000瓶水,一次性是远不过沙漠的,所以要采用接力的方式,

(1)先把1000瓶运到最远处:也就是把1000瓶运到250千米处,留下500瓶,这样刚好可以回来。

(2)再运1000瓶水,到达250千米处的时候,补充至1000瓶(此时250千米处还剩下250瓶水),然后到达500千米处,留下500瓶水,自己身上还

剩下250瓶水,刚好可以回到250千米处,这样可以用250千米处的250瓶水回到出发点。

(3)运最后的1000瓶水,到达500千米处,自己身上还剩下500瓶水,用500千米处的500瓶水补充至1000瓶水,然后运到1000千米处,还剩下500瓶水可以卖。

下图可以很明白得说明这个过程。

商人骆驼运水_第1张图片

所以,很明显,答案是选C的。

很可能绝大多数人到达这里就停止了,以为这就是正确答案了。但是答案真的正确吗?

其实不正确,我们还可以做到更多的水。

怎么思考呢?

还是采用“浪费”的思想,如果在路途中,我们多走了路,那么就表明我们多喝掉了本可以多卖的水。

那么,我们走的路程是最少最佳的吗?

注意到在0-250千米处,我们走了5趟,在250千米处,我们走了3趟,在500-1000米处,我们走了1趟。

这里的5趟意味着什么?5趟意味着我们要运3次(也就是对应3000瓶水)的次数。

3趟对应着我们要运2000瓶水的次数。

1趟对应着我们要运1000瓶水的次数。

而从3000瓶到2000瓶,我们需要走250千米5趟吗?

不需要!我们只需要走200千米就够了,200*5 = 1000瓶,我们刚好还剩下2000瓶水,这样接下来我们就只需要走2000瓶水对应的3趟就够了

所以200千米到250千米的多出来的2趟是多走的,也就是说我们可以节省水。

具体的操作过程是:

(好吧,说着太累,自己看图吧,虽然做图很辛苦,但是简洁明了)这里的要点就是,看水什么时候变成3000,2000等整千数倍,来确定下一次待的地方。

商人骆驼运水_第2张图片


注意,这里的第二次终点533米,而不是534米,大家可以自己画一下,如果是534米的话,虽然没有浪费水,但是最终只能卖532瓶水。


所以,最终的答案,应该是533瓶水(小数不算啊,都按整的来)。



你可能感兴趣的:(面试题目)