这个问题可以使用0-1背包的解决方法。0-1背包是一个经典的动态规划问题,可以通过对背包容量和每个物品的重量进行递推,得到最大价值。
举个例子:
假设有三个物品,分别为A、B、C,重量分别为3、4、5,价值分别为4、5、6,背包容量为7。
我们可以用一个数组f[i][j]表示前i个物品恰好放入一个容量为j的背包中所得到的最大价值。
则初始数组为f[0][0…7]={0,0,0,0,0,0,0,0}
当考虑第1个物品A时:
①不选A:f[1][0…7]={0,0,0,0,0,0,0,0};
②选A:f[1][0…7]={0,0,0,4,4,4,4,4};
因此f[1][0…7]=