揹包問題 HDU串1248

2021-08-17 11:55:13 字數 1865 閱讀 4094

真的是非常非常非常非常好的教程!

(一)小測試

這個題有點小彆扭,就是把value和price反過來了

【**片】

for (int i = 0; i < k; i++)

}j-price[i],也只是座標而已吧,(排除了123完全放不下的情況-那些就讓其他的來填滿吧-然後它的觸角還是可以伸到123那些啊= -)

啊!for (int j = m; j <= price[i]; j--)

!!!只要遍歷到這裡就可以了,別的都是浪費的..

因為j更小的話根本裝不下啊

但是1但是!這個等號嗷帶著的,別忘了

【以及】從01揹包往上面跑了一步,就是如果是一件的很多樣物品,不如直接存貯乙個cnt然後用k記錄一下總數...方便快捷

(二)隱身(引申)

上次的小比賽有個題目是這個,再琢磨一遍吧

(**有參考)

#include #include int w[3] = ;//w[i]既是花費的代價,也是獲得的價值  

int dp[10005];//dp[i][j]表示在購買到i件物品,用j塊錢所獲得的最大價值.最後n-dp[3][n];

int max(int a, int b)

int main()

return 0;

}

1 void completepack(int cost, int weight)

2 感覺這道題目用揹包做是肯定不會錯的..

【核心**在這2行】

for (i = 0; i <= 2; i++)

for (j = w[i]; j <= n; j=j+10)

dp[j] = max(dp[j], dp[j - w[i]] + w[i]);

至於為什麼...我隱隱約約的感覺,可能和順序有關?

上文那個,倒著放進去,從最大的開始就已經攔腰截斷了,所以只能放一次,下面這個正著開始就

因為,按照的**,這張表是至底向上,(?)好像是從右到左

雖然可以化成一行一行的**,但是其實完全可以不要座標(v[i][j])因為這個表是隨時實時更新的.....

那麼其實你從i開始到後面n為止,前面的也被更新了....

就拿150來說 到350的時候可以選擇dp[150]這個還是在同一行的for迴圈更新的

但是,如果倒著從n就開始生成,就不能使用之前更新過的狀態了...

printf("%d\n", n - dp[n]);

(三)至於,150 200 350 

是無限的,塞進去更新的話也用得到吧,比如某些150到達不了的地方,200就可以達到最優..

但是350在都價值和重量都一樣的情況下,就沒法到達最優了,完全可以被另外兩個取代...

(四)還有就是,如果乙個物品花費高,value低,什麼時候都可以用花費低,value高的另乙個物品來填充(剪枝)

因為哪怕是窟窿,也可以有另乙個來補,上乙個題的話就是,350其實被150,200抵消之後可以不看= -

如果問題是150的重160,200的重130,200就沒用了= -

如果是150的重150,200的重量150,還是用150能夠到達最大的= -(只看價值,揹包空不空是另外的事情吧,雖然這個題的話是個謬論..用150元達到了200的價值,balaba)

如果150的重150,200的200,....350就沒用了啊

啊 qaq

(五)本質其實是動態規劃問題...搞明白了揹包可以有很多變種= =  動態規劃才是根本啊t t

(六)這周感覺...唉 真是蹉跎時光啊 我的課怎麼有那麼多  有一點點崩潰 又不想放棄喜歡的小姐姐

唉 有選擇的翹翹課吧 時間不多了  有一些東西是可以補回來的 有一些deadline則是趕不上的 

輕重緩急 加油

HDU 1248 完全揹包

不死族的巫妖王發工資拉,死亡騎士拿到一張n元的鈔票 記住,只有一張鈔票 為了防止自己在戰鬥中頻繁的死掉,他決定給自己買一些道具,於是他來到了地精商店前.死亡騎士 我要買道具 地精商人 我們這裡有三種道具,血瓶150塊乙個,魔法藥200塊乙個,無敵藥水350塊乙個.死亡騎士 好的,給我乙個血瓶.說完他...

HDU 1248 寒冰王座 (揹包)

problem description 不死族的巫妖王發工資拉,死亡騎士拿到一張n元的鈔票 記住,只有一張鈔票 為了防止自己在戰鬥中頻繁的死掉,他決定給自己買一些道具,於是他來到了地精商店前.死亡騎士 我要買道具 地精商人 我們這裡有三種道具,血瓶150塊乙個,魔法藥200塊乙個,無敵藥水350塊乙...

HDU1248 寒冰王座 完全揹包

problem description 不死族的巫妖王發工資拉,死亡騎士拿到一張n元的鈔票 記住,只有一張鈔票 為了防止自己在戰鬥中頻繁的死掉,他決定給自己買一些道具,於是他來到了地精商店前.死亡騎士 我要買道具 地精商人 我們這裡有三種道具,血瓶150塊乙個,魔法藥200塊乙個,無敵藥水350塊乙...