这又是一道题解
题目传送门
题目大意
有一堆物品分主件和附件,你有 n n n元钱,你还想买 m m m个物品,你知道了第 i i i件物品的价格、重要程度以及它对应的主件,你要求出每件物品的价格与重要度的乘积的总和最大方案。要求真多
思路
思考一下其实可以发现,其实只有选主件, 主件+附件1,主件+附件1+附件2,主件+附件2这四种状态,只要把它们整合到一起,就变成了一个分组背包问题
for (int i = 1; i <= m; i++)
for (int j = 0; j <= 1; j++)
for (int k = 0; k <= 1; k++) {
gv[i][j * 2 + k] = j * v[c1[i]] + k * v[c2[i]] + v[i];
gw[i][j * 2 + k] = j * v[c1[i]] * p[c1[i]] + k * v[c2