揹包問題hdu2546(01揹包換了種問法)

2021-08-21 17:22:10 字數 440 閱讀 9864

【分析】

就是餘額小於5的話買不了任何東西,就算千有多

那麼餘額大於5的話先預留出5元留下來買最貴的東西

然後再dp[m-5]

算出剩下的錢能夠買得的最貴的東西

#include#include#include#include#include#includeusing namespace std;

#define maxn 1010

int p[maxn];

int dp[maxn];

bool cmp(int a,int b)

int main()

}int max=0;

for(int i=1;i<=m-5;i++)

printf("%d\n",m-p[0]-max);}}

return 0;

}

hdu 2546 0 1揹包問題

悲催了.這道01揹包的題目我wa 了好多遍,感受還是頗多的.說是01揹包,但是還是有一定的研製條件的。首先當飯卡當中的錢不足5塊的時候是不能消費的,所以就應該是原來的值。這裡就wa 了很多遍啊s。然後變通一下,要使得飯卡當中所剩餘額最小,那麼也就是說最大 的那道菜要在最後買,這樣才能得到最優解,那麼...

HDU 2546 0 1揹包問題

揹包問題是乙個經典的動態規劃模型。它既簡單形象容易理解,又在某種程度上能夠揭示動態規劃的本質,故不少教材都把它作為動態規劃部分的第一道例題。01揹包問題,可以這麼理解。題目有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 求解將哪些物品裝入揹包可使價值總和最大。基本思路 這是最...

hdu2546 01揹包 重學揹包

題意 給出菜的價錢和自己的餘額。使自己餘額最少,注意餘額大於5的情況可以買任意的菜。思路 小於5的餘額不能買菜,直接輸出,大於五的餘額,留下5元買最貴的菜,剩下的餘額進行01揹包,將剩下的餘額減去01揹包消耗金額最大。就得出答案 include includeusing namespace std ...