Algorithm 01有m个项目限制的背包问题

Algorithm 01有m个项目限制的背包问题,algorithm,dynamic-programming,Algorithm,Dynamic Programming,有一个容量为C的背包,需要选择n个物品,每个物品只有一个,且其大小和价值为ci和vi(i=1,2,…,n),如何在最多装载m个物品的情况下从物品中选择物品,以最大化背包中的总价值? 有人能告诉我这个计划的具体想法吗​​这个问题,或者是否有任何代码可以阅读?您应该定义以下函数f(i,j,k),该函数通过从最大容量为j的前i项(1,2..i)中精确选择k项,为您提供最大值。 根据我们的定义,过渡将是: f(i , j , k) = max( t1 , t2 ) t1 = f(i-i , j , k

有一个容量为C的背包,需要选择n个物品,每个物品只有一个,且其大小和价值为ci和vi(i=1,2,…,n),如何在最多装载m个物品的情况下从物品中选择物品,以最大化背包中的总价值?
有人能告诉我这个计划的具体想法吗​​这个问题,或者是否有任何代码可以阅读?您应该定义以下函数f(i,j,k),该函数通过从最大容量为j的前i项(1,2..i)中精确选择k项,为您提供最大值。

根据我们的定义,过渡将是:

f(i , j , k) = max( t1 , t2 )

t1 = f(i-i , j , k) // here we did not pick the i-th item

t2 = vi + f(i-1 , j - ci , k-1)// here we picked the i-th item
你的问题的结果将是max(f(n,C,i)),其中i=1,2…n