摘要: 题意: 有很多个箱子,想买箱子中的物品必须先买下箱子 思路: 依赖背包,实际的操作过程中依然需要注意几个点:01背包的时候,背包容量是由max-p到ci,而非max到p+ci。 至于为什么,因为后一种则就是表示每个物品代价是p+ci,而非ci了,所以此时就会计算错误 阅读全文
posted @ 2012-11-08 23:10 kedebug 阅读(265) 评论(0) 推荐(0)
摘要: 题意: 一棵树,每个节点有一个权值,求从根节点出发,最多走K步,能够取得的最大权值(可以往回走)。 思路: dp[0][u][j] 从u节点出发,最多走j步(可以小于j步),可以获得的最大权值。 dp[1][u][j] 从u节点出发,最多走j步,最终停留在u的子树节点,可以获得的最大权值。 阅读全文
posted @ 2012-11-08 21:29 kedebug 阅读(304) 评论(0) 推荐(0)
摘要: 思路: 看完背包9讲,感觉这一题还是不难理解的。首先,对于没有组的限制的X类物品,进行一遍背包(01背包、完全背包、多重背包)。 其次,对于有组的限制的物品,就需要再次考虑下了。这次要用到泛化背包和分组背包的思想。每一组只能选择组里面的一类物品。 于是试图考虑,如果我分给这个组V(range from 0 to D)的容量,能够最多拿到多少价值。因为这个组有X类物品,只能选择一类, 所以需要先对这个组的每一类物品进行一次01背包,获得分配给这类物品V的容量取得的最大价值,然后再对这个组的X类物品进行分组背包。 最后,针对上述组进行一次分组背包,问题得以解决。 阅读全文
posted @ 2012-11-08 17:18 kedebug 阅读(421) 评论(0) 推荐(0)