因为题干实在太长,noip总是喜欢搞些没用的 ,请大家自己去洛谷看,这里只讲思路,这样你看了也不会有负罪感。
1064-金明的预算方案
好,我们先看题目,这么一大串没用的怎么看,看完题目之后我们可以大致的掌握这道题的方向就是背包。其中提到的主件和附件是一种特殊背包——有依赖性的背包。
有依赖性的背包在背包九讲的正解里面是要将每一个主件与附件集合都进行一次01背包,从而大大降低复杂度,但是因为题目中提到一个主件最多只有两个附件,所以这一题不需要。(暂时看不懂没关系,看下去之后再回来看)
在开始做这一道题之前我们先来了解什么是分组背包,分组背包的定义是在N个物品中分为T个组,第i组中有num[i]个物品,每个组中的物品互相排斥,即每个组最多只能选择一个物品放入背包。
我们用一个二维数组g来记录每个组的成员编号。
g[i][j]表示第i个组第j个成员的编号。
for(int i=1;i<=T;i