思路: 首先对输入分组,每组包含一个主要的和可能有的附加物品,使用一个vector记录主要物品的idx,再使用两个vector存放价格和满意度(二维的数组,三列,第一列是主物品,二三是附加,如果没有为0); 之后构建dp矩阵,当前值为max(上一格的值, 当前主物品+附加品的四个状态的满意度+剩余钱上一行对应的满意度)。 #include<iostream> #include<math.h> #include<vector> using namespace std; int main(){ &nbs...