HDU3449 Consumer 条件背包 DP
这道题应该是背包问题里堪称经典的问题了,表示刚开始学 DP,这类问题也很快弄懂了。
题目大意
给你一些分组,每组物品放在一个盒子里,每组物品都有几种物品,有自己的价格 和价值 ,现在要买一个物品时,要买它对应的盒子,盒子的价格是 ,问你花一定的钱最多买到的物品价值是多少。
这类问题要用到两个数组, 表示 块钱可以买到的最大价值, 表示考虑到当前盒子时, 块钱可以买到的最大价值,首先 置为 ,枚举全部的盒子, 置为 表示买不到,更新的转移可以从 转移也可以从 转移,从 转移表示你还没有买盒子,要附加上盒子的价格, 表示你买过盒子了,就直接转移就可以了,转移方程如下:
注意每次 的置 操作,以及每次枚举完当前盒子后用 更新 的值。