hdu 2546 0 1揹包問題

2022-07-28 22:21:27 字數 765 閱讀 5054

悲催了..~~    這道01揹包的題目我wa 了好多遍,感受還是頗多的...

說是01揹包,但是還是有一定的研製條件的。。。

首先當飯卡當中的錢不足5塊的時候是不能消費的,所以就應該是原來的值。這裡就wa 了很多遍啊s。

然後變通一下,要使得飯卡當中所剩餘額最小,那麼也就是說最大**的那道菜要在最後買,這樣才能得到最優解,

那麼對於其他n-1道菜就是乙個簡單的0-1揹包了,只是這兒有乙個變通,那就是揹包所能得到的價值和它所耗空間是一樣的...

接下來就看**好好體會了。。。

view code

1  #include2  #include3

using

namespace

std;

4int dp[1010],num[1010],visit[1010];5

intmain()622

}23   scanf("

%d",&rest);

24if(rest<5)

25   memset(dp,0,sizeof

(dp));

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

2735

} 36}

37   printf("

%d\n

",rest-dp[rest-5]-maxvalue);38}

3940

return

0; 41}

42

HDU 2546 0 1揹包問題

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

飯卡 HDU 2546(01揹包)

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

hdu2546 01揹包理解

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