冰封王座
題解:顯然, 這是一道完全揹包,因為每件物品我們可以取無數次,而完全揹包的精髓就在於如何取無限次
下面是老套話了
你會發現這個核心**與 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塊乙...