我有几种类型的硬币,每种都有重量(wi)和成本(ci)。所以我必须制作一个重量== W和(!)硬币最低成本的背包。我不能使用DP来重现关系。
答案 0 :(得分:1)
只需制定通常的复发关系......
将总重量k可达到的最低成本指定为Min_cost(k)。
使用以下命令引导memoization:
Min_cost(0) = cost of empty set = 0
然后使用以下方法求解k的增加值:
Min_cost(i+1) = min [Min_cost(i) + min [ci, for all items with wi = 1],
Min_cost(i-1) + min [ci, for all items with wi = 2],
Min_cost(i-2) + min [ci, for all items with wi = 3],
...
Min_cost(2) + min [ci, for all items with wi = w-1],
Min_cost(1) + min [ci, for all items with wi = w],
Min_cost(0) + min [ci, for all items with wi = w+1]]