面試題 火車運煤問題

2021-05-25 01:42:29 字數 909 閱讀 6768

面試題:火車運煤問題

你是山西的乙個煤老闆,你在礦區開採了有3000噸煤需要運送到市場上去賣,從你的礦區到市場有1000公里,你手裡有一列燒煤的火車,這個火車最多只能裝1000噸煤,且其能耗比較大——每一公里需要耗一噸煤。請問,作為乙個懂程式設計的煤老闆的你,你會怎麼運送才能運最多的煤到集市?

答案一:

終點d,中間點c,中間點b,起點a。

首先為了滿足火車運到某個中間點可以卸下一定量的煤並返回,應保證每次運輸的距離小於500,這樣起點和終點直接至少存在2個中間點。

為了減少煤的損耗,每次運輸時應滿載,故在c點應有1000噸煤,而為了讓c點有1000噸煤,需要火車從b點到c點走3次(2次去,一次回)。而b點儲存的煤應該是1000的2倍,所以從b運到c共損失1000噸煤,bc=1000/3;

為了使b點儲存2000噸煤,需要從a點到b點往返5次(3次去,2次回),a點有3000噸煤,從a到b損失1000噸煤,則ab=1000/5;

ab=200;bc=333.33333;那麼cd=1000-ab-bc=466.6666;

所以最終剩餘1000-cd=533.3333噸煤

答案二:

分析:列車一次最多只能運1000噸煤,不難看出當剩餘煤在(2000,3000]的時候至少需要運三次,在(1000,2000]的時候運兩次,在(0,1000]的時候運一次。

為了減少列車往返的次數,根據上述區間所示,列車中途可設兩個停靠點,且其存煤量最好為2000和1000。

計算:設第乙個停靠點距起點x,第二個停靠點距起點y,最終可運達市場煤z

則5x=1000,3(y-x)=1000,z=1000-(1000-y)=y

解得:x=200,z=y=1600/3=533.33

面試題 火車運煤問題

很有意思的東西 題目如下 你是山西的乙個煤老闆,你在礦區開採了有3000噸煤需要運送到市場上去賣,從你的礦區到市場有1000公里,你手裡有一列燒煤的火車,這個火車最多只能裝1000噸煤,且其能耗比較大 每一公里需要耗一噸煤。請問,作為乙個懂程式設計的煤老闆的你,你會怎麼運送才能運最多的煤到集市?這道...

面試題 火車運煤問題

你是山西的乙個煤老闆,你在礦區開採了有3000噸煤需要運送到市場上去賣,從你的礦區到市場有1000公里,你手裡有一列燒煤的火車,這個火車最多只能裝1000噸煤,且其能耗比較大 每一公里需要耗一噸煤。請問,作為乙個懂程式設計的煤老闆的你,你會怎麼運送才能運最多的煤到集市?答案 於是,你最多可以運送50...

面試題 火車運煤問題

你是山西的乙個煤老闆,你在礦區開採了有3000噸煤需要運送到市場上去賣,從你的礦區到市場有1000公里,你手裡有一列燒煤的火車,這個火車最多只能裝1000噸煤,且其能耗比較大 每一公里需要耗一噸煤。請問,作為乙個懂程式設計的煤老闆的你,你會怎麼運送才能運最多的煤到集市?首先想到最優解的兩個特徵 1,...