[解決] ZeroJudge-c271 疊疊樂(Easy)

作者: fatcat8127 (胖胖貓)   2020-08-19 12:32:01
關於這題的解法 tag 其實已經寫明:動態規劃+排序。
這類型的題目都會有更新順序的問題所以必須事先排序但問題就在於排序的規則。
首先題目要求箱子疊起來時『長度』必須呈非嚴格遞增,所以長度為排序時的首要考量,
更新時應該由小到大,但是對於相同長度時的物品該怎麼考慮?
題目提到箱子有負重限制,疊在某個箱子上面的重量加上自己不能超過該箱子的最大負重。
正確答案是當長度相同時再依據負重限制小到大排序。
但我考量是先依據額外負重限制(題目給的S-W)小到大相同時在考慮箱子的重量,
不過被 vincnet 光速打臉,附上打臉測資:
4
1 7
5 10
3 8
1 6
直覺理解是(1) 額外負重限制越小(S-W)的應該越優先更新
(2) 箱子重量越輕(W)的應該越優先更新
但無法理解的點在於如何將(1)(2)併在一起討論,顯然(1)(2)會相互影響。
對於排序條件無法獨立討論(決定哪個先後),我目前想到的類似題是
UVa10026 - Shoemaker's Problem,不過這題可以透過代數+貪婪法證明。
不知道怎麼套用到這題上面...作為證明?
總不是說像撒尿牛丸全部加一起就好...
作者: DJWS (...)   2020-08-20 08:11:00
本板文章列表 按/搜尋文章標題"烏龜塔"
作者: fatcat8127 (胖胖貓)   2020-08-20 21:16:00
感謝大大的回覆

Links booklink

Contact Us: admin [ a t ] ucptt.com