1012 饭卡

经典01背包问题,01问题在前面的1298中已经有了详解,本题的状态转移方程为:

if(j-a[i]>=0&&dp[i-1][j]<dp[i-1][j-a[i]]) dp[i][j]=dp[i-1][j];

else dp[i][j]=j-a[i]<0 ? (dp[i-1][j]>4?dp[i-1][j]-a[i]:dp[i-1][j]) : dp[i-1][j-a[i]];

式中 i 表示第 i 种菜,j 表示未对第 i 种菜决策前所余下的钱,当然,这一切都是在j>=5时成立,当j<5时,dp[i][j]=j。

呵呵!这里给的方程太详尽了!基本就是答案了!


posted @ 2011-04-16 22:23  nightstaker  阅读(195)  评论(0编辑  收藏  举报