背包笔记

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

 

 

posted @ 2017-02-10 00:01  bobble  阅读(144)  评论(0编辑  收藏  举报