|
发表于 2010-3-4 09:48:56
|
显示全部楼层
经过验算,俺确定再分为两段的情况下,LZ的答案是正确的,算法如下:
1、既然车子可以随时加油,也就是说油以桶计算是没意义的,直接以公里计算更好,也就是起点有500的油
2、最后的答案肯定是到了某个地方,正好还有200的油,也就是说题目变换为花费300的油如何运200的油到最远处
3、所谓的利用运200油到最远处,其实等于两个条件,第一:要有足够的空间运200油,第二:过程中,返回的总路程要最少
4、由于车子只能一次装200的油,所以不可能一次完成任务,而多次往返,显然最好的思路就是不必全程往返,因此中间取一点做为中转(为什么要分为2段的原因,猜想多段可能更远)
5、假设中点前半段为x,后半段为y,可知道本题目就是求x+y为最大的了;根据题目,x段共往返了n次,y只往返了一次为最合理。根据以上条件,x段往返了n次,相当于车走了(2n+1)倍x的路程,y只往返了一次,就是走了3y的路程,于是有第一个等式:(2n+1)x+3y=300。观察这个等式,显然n越小,x+y的值越大。于是先考虑n为1的情况,n为1时,相当于在起点只往返了1次,也就是2次从起点出发,车子最多只能带400的油,无法带走起点共500的油,因此n=1不符合运输条件,抛弃。那就按n=2计算,当n为2时,首先满足了可以运输的基本条件。这时候就变成了5x+3y=300的等式,于是算出x=60-0.6y,x+y=60+0.4y.显然,y越大x+y就越大。但是我们知道,x、y肯定都小于100,否则将没办法运输,另外,还有个条件,就是既然从中点到y只往返了一次,也就是只出发了2次,意味着从中点到y,车子最多能带过去400的油,而最后还要剩200,于是就得出另一个不等式,400-3y需要大于等于200(极端的情况是最大运载量下减去路上的要剩下200的油),也就是y小于等于200/3,带入上面的等式,得出x+y=60+0.4y最大为y=200/3时,达到最大86.6666666.同时x、y的数值也就有了,x=20,y=66.66666
也就是说,车子最远可以开出286.6666远。
但是不知道拆分为3段或者多段会不会更远,可能会有更远的情况 |
|