思路: 这是一道01背包问题, 只有选与不选的这两种情况, 但是这题物品的属性比起普通的01背包只有重量和价值以外多了主件/附件这一属性, 再看题目中"每个主件可以有0个、1个或2个附件"这一句话,一种物品的所有选择情况只有:1.只选择主件 2.选择主件+附件1 3.只选择主件和附件2 4.选择主件和所有附件, 那么我们很容易就能得到状态转移方程dp[i]= max{dp[i], dp[i-w]+v(i>=w), dp[i-w-w1]+v+v1(i>=w+w1), dp[i-w-w2]+v+v2(i>=w+w2), dp[i-w-w1-w2]+v+v1+v2(i>=w+w1+w2) }
/**
* 题目: 洛谷OJ P1064 金明的预算方案
* 题型: 01背包
**/
#include <vector>
#include <cstdio>
#include <ios