题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2184
题意简述:n头cows,每头牛有两个参数:smartness 和 funness 并给定其值。求选取若干头cows,使得sum(smartness)+sum(funness)的值最大,且sum(smartness)和sum(funness)都必须为非负数。
解题思路:dp。设dp[i][j]表示在对第i头cow做选取决策,当前已选择的sum(smartness)为j时所得到的相应的sum(funness)最大值。那么相应的转移方程显然很明显:dp[i][j]=max(dp[k+value[i][0]][j-1]);
在实现的过程中注意数组下标的处理,还有就是这题如果不用滚动数组的话内存ms有点大,没试过会不会mle,但是滚动数组在这里比较好用,一定不会mle,果断选用。
(ps:有了思路,代码可以自己写,有什么问题,望指教)