PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Prob_Solve
[問題] 請教 ZJ c824/c835 的01背包問題(已解決)
作者:
fatcat8127
(胖胖貓)
2019-02-27 00:35:38
如題,這兩題的題目敘述和要求都是相同的,但特別之處在於物品的重量和背包負重都是2
的次方項,要求和01背包問題一樣問價值總和最大化。
想問一下解題方向或是想法,自己google了一下沒看到有題解也不知道怎麼下關鍵字和01背
包做區隔,先謝謝各位大大的回覆。
因為輸入的物品數量高達1e6個,而且重量和2的次方項有關,就異想天開想說會不會和
Huffman-Code 的編碼方式有關,所以寫了一個初版本,通過51%測資而已。
以下是我的程式碼:https://www.codepile.net/pile/A71bYyDz
作者:
oToToT
(å±å©)
2019-02-27 19:52:00
對於重量2^k時,我們把價值最大的兩個合在一起湊出重量2^{k+1}的物品,一直做到重量2^k的剩下一個或零個。如果剩一個我們再考慮加入一個重量2^k價值為0的物品,讓剩的那個也可以合上去,這樣直接看重量2^M中,價值最大的那個物品就好。因為可以證明在每個重量最多加入一個價值為0的東西時,用最優解選完選到一些價值為0的東西並不會影響答案一份有點慢的AC code
https://goo.gl/fBCRZC
作者:
fatcat8127
(胖胖貓)
2019-02-28 01:52:00
感謝大大的說明和程式碼根據我自己的理解和今天討論區的回覆,解法就是建立Binominal Heap的過程嗎
繼續閱讀
[問題] 快速球協變換
j0958322080
[問題] 請教 zerojudge c260 的想法 (已解決)
vincent97198
[問題] UVA 10268 WA
BrunoBao
[問題] cascade如何分?
g318
[問題] LC 505 the maze ii 時間複雜度估算
sean72
Re: [問題] Paper Assignment Problem
FRAXIS
[問題] Paper Assignment Problem
FRAXIS
[問題] minimum cost problem & DAG graph short
tzuchun42
[問題] 如何直接判斷浮點數運算時的誤差?(贈P幣)
baobao566
[問題] 最長的連續假期
stdlib
Links
booklink
Contact Us: admin [ a t ] ucptt.com