传送门
http://www.lydsy.com/JudgeOnline/problem.php?id=4145
题目大意
自己看吧
题解
dp[i,j]:表示前i家店达到买齐j的状态的最少钱数
dp[i,j]=min(dp[i−1,j],dp[i−1,k]+d[i]+差的物品总额)
后面的那部分用背包来求
dp[i,j]=dp[i−1,j]
dp[i,j+k]=min(dp[i,j+k],dp[i,j]+c[i,k])
(伪代码,只是表示两个不重叠状态的叠加)
CODE