动态规划

dp(0)背包

2017-03-22  本文已影响0人  vaisy

假定物品为i,背包容量为v:
之前靠贪心解,优先放性价比最高的。但是贪心只适用于可以连续分割

完全背包(参见hiho/week7):

物品数量无限。
a[i]=max(a[i],a[i-c]+w);//a[i]是消耗不超过i时获得的最大收益;
对于每个物品,c是其消耗,w是其收益;

0-1背包(参见hiho/week6):

物品只有一件。i顺序,v逆序处理。
f[i][v]=max{ f[i-1][v], f[i-1][v-c[i]]+w[i] }即前i件进入背包获取的最大价值;
压缩空间得f[v]=max{f[v](不放),f[v-c[i]]+wi}

多重背包:

加判断,如果物品数量×代价小于容量,就按完全背包算;
否则二进制成0-1背包来解决。

背包九讲说的很细了 慢慢看吧。

上一篇下一篇

猜你喜欢

热点阅读