悲催了..~~ 這道01揹包的題目我wa 了好多遍,感受還是頗多的...
說是01揹包,但是還是有一定的研製條件的。。。
首先當飯卡當中的錢不足5塊的時候是不能消費的,所以就應該是原來的值。這裡就wa 了很多遍啊s。
然後變通一下,要使得飯卡當中所剩餘額最小,那麼也就是說最大**的那道菜要在最後買,這樣才能得到最優解,
那麼對於其他n-1道菜就是乙個簡單的0-1揹包了,只是這兒有乙個變通,那就是揹包所能得到的價值和它所耗空間是一樣的...
接下來就看**好好體會了。。。
view code
1 #include2 #include3using
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種菜 每種菜可購買一次。已知每種菜的 以及卡上的餘額,問最少...