1. 程式人生 > >[商湯]一個狗媽媽有70塊肉,狗寶寶距離狗媽媽60步。每次狗媽媽最多拿40塊肉,每走2步需要吃掉一塊肉,則它最多能把 多少 塊肉拿給狗寶寶。

[商湯]一個狗媽媽有70塊肉,狗寶寶距離狗媽媽60步。每次狗媽媽最多拿40塊肉,每走2步需要吃掉一塊肉,則它最多能把 多少 塊肉拿給狗寶寶。

題目:一個狗媽媽有70塊肉,狗寶寶距離狗媽媽60步。每次狗媽媽最多拿40塊肉,每走2步需要吃掉一塊肉,則它最多能把 多少 塊肉拿給狗寶寶。

根據題意,如果滿載直接到終點會浪費掉30肉,而最優解一定要將這30肉消耗掉,以換取滿載的情況下距離寶寶最近,因此一定要在起點與終點之間有一個折返點;

設:起點為O、折返點為A、終點為B。OA距離為X,最後剩餘Y肉給寶寶;則:

第一次從O滿載出發再返回有:40-(X/2)*2肉留在A點

第二次O載30肉出發到A點撿起第一次留下的肉應該滿載:30-X/2+(40-(X/2)*2)=40得到X=20

則Y=70-(3x+(60-x))/2,代入x=20得Y=20