也就是说能做到在输出时把最高价值方案的所包括的物品都打印出来。新手思考了半天想不通
代码部分就是很基础的解决方案
int solution(int capacity, int p, vector<int> weight, vector<int> value)
{
if(p == 0)
{
return 0;
}else if(capacity < weight.at(p-1))
{
return solution(capacity, p-1, weight, value);
}else
{
int totalVal1 = solution(capacity - weight.at(p-1), p-1, weight, value) + value.at(p-1);
int totalVal2 = solution(capacity, p-1, weight, value);
return max(totalVal1, totalVal2);
}
}