冰封王座題解

2021-10-12 06:51:41 字數 728 閱讀 9439

冰封王座

題解:顯然, 這是一道完全揹包,因為每件物品我們可以取無數次,而完全揹包的精髓就在於如何取無限次

下面是老套話了

你會發現這個核心**與 01 揹包問題的核心**只有 v 的迴圈次序不同而已。為什麼這樣一改就行呢?首先想想為什麼 01 揹包問題中要按照 v=v…0 的逆序來迴圈。這是因為保證第 i 次迴圈中的狀態 f[i][v]是由 f[i-1][v-w[i]]遞推而來。換句話說,這正是為了保證每件物品只選一次,保證在考慮「選入第 i 件物品」這件策略時,依據的是乙個絕無已經選入第 i 件物品的子結果 f[i-1][v-w[i]]。而現在完全揹包的特點恰是每種物品可選無限件,所以在考慮「加選一件第 i 種物品」這種策略時,卻正需要乙個可能已選入第 i 種物品的子結果 f[i][v-w[i]],所以就可以並且必須採用 v=0…v 的順序迴圈。這就是這個簡單的程式為何成立的道理。

**:

#include

using

namespace std;

int n,dp[

10005

],a[4]

=,res;

intmain()

for(

int i=

1;i<=n;i++

) res=

max(res,dp[i]);

printf

("%d"

,n-res)

;return0;

}

Hdoj 1248 寒冰王座 題解

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