hdu 3449

经典的dp题。

这类问题要用到两个数组,dp[0][i]表示i块钱可以买到的最大价值,dp[1][i]表示考虑到当前盒子时,i块钱可以买到的最大价值,首先 dp[0]置为0,枚举全部的盒子,dp[1]置为-oo表示买不到,更新的转移可以从dp[0]转移也可以从dp[1]转移,从dp[0]转移表示你还 没有买盒子,要附加上盒子的价格,dp[1]表示你买过盒子了,就直接转移就可以了,转移方程如下:

dp[1][k]=max(dp[1][k],dp[1][k-c[i][j]]+v[i][j],dp[0][k-c[i][j]-p[i]]+v[i][j]); 


dp[0][j]=max(dp[0][j],dp[1][j]); 



posted on 2011-08-14 20:06  宇宙吾心  阅读(253)  评论(0编辑  收藏  举报

导航