HDU 1248 寒冰王座(完全揹包)

2021-07-08 19:42:58 字數 1101 閱讀 7789

問題描述:

不死族的巫妖王發工資拉,死亡騎士拿到一張n元的鈔票(記住,只有一張鈔票),為了防止自己在戰鬥中頻繁的死掉,他決定給自己買一些道具,於是他來到了地精商店前.

死亡騎士:」我要買道具!」

地精商人:」我們這裡有三種道具,血瓶150塊乙個,魔法藥200塊乙個,無敵藥水350塊乙個.」

死亡騎士:」好的,給我乙個血瓶.」

說完他掏出那張n元的大鈔遞給地精商人.

地精商人:」我忘了提醒你了,我們這裡沒有找客人錢的習慣的,多的錢我們都當小費收了的,嘿嘿.」

死亡騎士:」……」

死亡騎士想,與其把錢當小費送個他還不如自己多買一點道具,反正以後都要買的,早點買了放在家裡也好,但是要盡量少讓他賺小費.

現在死亡騎士希望你能幫他計算一下,最少他要給地精商人多少小費.

樣例輸入:

輸入資料的第一行是乙個整數t(1<=t<=100),代表測試資料的數量.然後是t行測試資料,每個測試資料只包含乙個正整數n(1<=n<=10000),n代表死亡騎士手中鈔票的面值.

注意:地精商店只有題中描述的三種道具.

2 900

250樣例輸出:

對於每組測試資料,請你輸出死亡騎士最少要浪費多少錢給地精商人作為小費.

0 50

要求剩餘最少的錢,就是求購買物品的最多花費。

狀態轉移方程:dp[k] = max(dp[k], dp[k - value[j]] + value[j])

dp[k]表示擁有k這麼多錢的時候的最多花費,對於每種物品,可以買一件或多件,也可以不買,對於當前擁有的錢k,比較是保持原來的購買情況的花費高還是花value[j]購買新的物品花費高,選擇高的最為新的dp[k]。

ac**:

#include 

#include

intvalue[3] = ;

int main()

//對於當前擁有的錢k,比較是保持原來的購買情況的花費高還是花value[j]購買新的物品花費高

}printf("%d\n", n - dp[n]); //dp[n]表示擁有n的錢的時候最多能花費多少錢}}

return

0;}

HDU1248 寒冰王座 完全揹包

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

完全揹包 HDU 1248 寒冰王座

有n中物品和乙個容量為v的揹包,每種物品都有無限件可用,放入第i中物品所佔的空間是ci,價值是wi,求解將哪些物品放入揹包中可使這些物品的耗費空間總和不超過揹包的容量,且價值總和最大。for i 1 i n i for v ci v v v f v max f v f v ci wi 在01揹包中讓...

HDU 1248 寒冰王座 完全揹包

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