小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個小時,有的可能就只能使用3個小時。顯然如果他只有兩個電池乙個能用5小時乙個能用3小時,那麼他只能玩3個小時的遊戲,有乙個電池剩下的電量無法使用,但是如果他有更多的電池,就可以更加充分地利用它們,比如他有三個電池分別能用3、3、5小時,他可以先使用兩節能用3個小時的電池,使用半個小時後再把其中乙個換成能使用5個小時的電池,兩個半小時後再把剩下的一節電池換成剛才換下的電池(那個電池還能用2.5個小時),這樣總共就可以使用5.5個小時,沒有一點浪費。現在已知電池的數量和電池能夠使用的時間,請你找一種方案使得使用時間盡可能地長。首先我先吐槽一下已經存在的許多題解:題目標個「貪心」,可是解題時根本沒用貪心,都是直接用的結論。如果有人知道這題怎麼用貪心來解,還望告知一下。(翻了這麼多題解,乙個真正用貪心法的都沒找到,氣死我了。)
① 先將電池按時長盡可能平均分為兩組(兩組差值最小)
\text
① 先將電池按時長盡可能平均分為兩組(兩組差值最小)
②
\left\ \text \\ \text \\ \text \\ \end \right.
②⎩⎨⎧1
》如果恰好均分(差值為
0),則最大
時長=所
有電池總
時長/2
2》無法恰好均分時,如果較大一邊的電池有兩個及以上,則最大
時長=所
有電池總
時長/2
3》無法恰好均分時,如果較大一邊的電池只有乙個,則最大
時長=較
小一邊電
池總時長
1》正確性顯然;下面同時證明 2》3》:
當無法恰好均分時, 記較大的一邊與較小一邊的差為 xxx:
則較大一邊中的任意電池時長不小於 x
xx,否則總可以將這個電池放入另一邊,使得兩邊差值變小,從而原先的差值並不是最小,與假設矛盾。
既然較大一邊中任意一塊電池時長都不小於 x
xx,那我總可以任選兩塊電池,一起使用 x/2
x/2x/
2 時長,這樣,較大一邊的總時長就會降低 x
xx,兩邊總時長相等,變為 1》的情況。
貪心 電池的壽命
電池的壽命 總時間限制 1000ms 記憶體限制 65536kb 描述 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個小時,有的可能就只能使用3個小時。顯然如果他只有兩個...
電池的壽命(貪心)
電池的壽命 總時間限制 1000ms 記憶體限制 65536kb 描述 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個小時,有的可能就只能使用3個小時。顯然如果他只有兩個...
1229 電池的壽命
1229 電池的壽命 時間限制 1000 ms 記憶體限制 65536 kb 提交數 3569 通過數 1970 題目描述 小s新買了乙個掌上遊戲機,這個遊戲機由兩節5號電池供電。為了保證能夠長時間玩遊戲,他買了很多5號電池,這些電池的生產商不同,質量也有差異,因而使用壽命也有所不同,有的能使用5個...