01背包:
选或不选 f[i,v]:=max{f[i-1,v],f[i-1,v-w[i]]+c[i]}
1 { w:重量 2 c:价值 3 空间优化 4 } 5 for i:= 1 to n do 6 for j:=vm down to 0 do //逆序更新 7 f[j]:=max(f[j],f[j-w[i]]+v[i]);
record:
P1060 开心的金明:http://paste.ubuntu.com/23567487/
P1048 采药 :http://paste.ubuntu.com/23567486/
完全背包:
选多件一件或不选 f[i,v]:=max{f[i-1,v-k*w[i]]+k*c[i]}
1 { w:重量 2 c:价值 3 空间优化 4 } 5 for i:= 1 to n do 6 for j:=vm down to 0 do //正序更新 7 f[j]:=max(f[j],f[j-w[i]]+v[i]);
等价于: f[i,v]:=max{f[i-1,v],f[i,v-w[i]]+c[i]} //将一种拆成多件零一
//优化:如果w[i]<=w[j]&c[i]>=c[j]就去掉j,减少物品数量,选择物美价廉
record:
P1060 疯狂的采药:完全背包 : http://paste.ubuntu.com/23567526/
混合背包:
混合零一,多重,完全背包!
record:
U6412 KT的盗窃计划: http://paste.ubuntu.com/23567677/ //qwq该题属于裸的混合背包by lx