hdu 2546 飯卡(揹包dp)

2021-09-30 12:25:16 字數 680 閱讀 6777

題意:

中文題。。。

也就是說,當卡內的餘額大於等於5元時才可以買東西,即使消費完後是負的也是沒有關係的。

然後告訴你卡的餘額,每種物品的**,並且這裡的每種物品我們都只能選擇一次來買。

問你卡上最小的餘額是多少。

思路:因為我們要使卡上的餘額最少,所以我們要在餘額大於等於5的時候花費的最多才行,然後我們再減去**最大的那個物品的**就是最小的餘額了。

這裡我們把揹包容量看成m-5,然後利用01揹包求出在容量為m-5的時候時的消費最大值。並把每種物品的**排序,最後m-dp[m-5]-v[n]就是答案了。

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

#define inf 99999999

#define maxn 1111

int v[maxn];

int dp[maxn+45];

int main()

sort(v+1,v+1+n);

for(int i=1;i=0;j--)

} printf("%d\n",m-dp[m-5]-v[n]); }}

/*31 2 361

505101 2 3 2 1 1 2 3 2 1

500

*/

DP 揹包 hdu2546 飯卡

problem description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一...

HDU2546 揹包DP 飯卡

description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一次。已知每種菜的...

hdu2546 飯卡(01揹包 dp)

problem description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一...