Piggy Bank(完全揹包)

2022-03-12 03:09:34 字數 583 閱讀 4751

/*

完全揹包問題 再判斷揹包能否裝滿

題意:給出存空錢罐的重量以及裝滿時的重量

給出每種硬幣的面值以及重量

求 存錢罐裝滿時的最小價值。。。若不能裝滿輸出this is impossible

值得注意的兩點的是

(1) dp陣列的初始化

因為要求的是最小值 所以dp陣列賦為最大值但是dp[0]的值為0;

(2) 如何判斷揹包是否裝滿

物品個數n

揹包容量 c

for(int i=1;i<=n;i++)

for(int j=weight[i];j<=c;j++)

dp[j]=min(dp[j],dp[j-weight[i]+value[i]);

當j=c時 如果dp[j-weight[i]]不是初始值 即:

第i個物品和其他的物品組合能把揹包裝滿

如果dp[j-weight[i]]是初始值 即:反之

using namespace std;

const int inf=0x3f3f3f3f;

int main()

return 0;

}

完全揹包 Piggy Bank

時間限制 1 sec 記憶體限制 128 mb 提交 5 解決 2 提交 狀態 討論版 命題人 add cst 現在有乙個豬存錢罐。我們知道存錢罐裡面硬幣的總重量以及罐中硬幣的種類,以及各個種類硬幣的單位重量和價值。求存錢罐裡面的錢的最小數字。輸入由t組測試用例組成。在輸入檔案的第一行上給出它們的數...

完全揹包 poj 1384 Piggy Bank

完全揹包與01揹包相比,最大的差別在於完全揹包中的任意揹包有多種選擇 0,1,2,3,4,5 而01揹包要求的選擇有 0,1 兩種,所以在尋找狀態轉移方程是01揹包問為 i 1 n j v 0 f j max f j f j a i w a i p 這樣保證了每個揹包選擇一次或者0次 而完全揹包狀態...

hdu 1114 Piggy Bank(完全揹包)

題意 給出乙個存錢罐的容量,給出n種硬幣的價值p和重量w 注意 每種硬幣可無限取 1.如果存錢罐能夠正好塞滿,輸出塞滿存錢罐需要的最少硬幣的價值。2.若不能完全塞滿,則輸出impossible。思路 每種物品可以放無限多次。所以為完全揹包問題。此題是求最小值,為完全揹包的變形。注意初始化 dp 0 ...