1.01背包:有n种物品与承重为m的背包。每种物品只有一件,每个物品都有对应的重量weight[i]与价值value[i],求解如何装包使得价值最大。

//基本问题:二维vec->滚动vec->一维vec

http://note.youdao.com/noteshare?id=78da8bf79c3cc25bc8ca66a9c30a98eb&sub=777D7C1D1D1E43B6B6ED212B8F0D7168

 

2.完全背包:有n种物品与承重为m的背包。每种物品有无限多件,每个物品都有对应的重量weight[i]与价值value[i],求解如何装包使得价值最大。

//直接v循环从逆序变为正序即解决

http://note.youdao.com/noteshare?id=4cb7a813028dcae5fc3f7b3cbc544619&sub=3E63208980F14CD8B38C06F1FBA41845

 

3.多重背包:有n种物品与承重为m的背包。每种物品有有限件num[i],每个物品都有对应的重量weight[i]与价值value[i],求解如何装包使得价值最大。

//本质仍然01背包,多加一步vec的转化即可

http://note.youdao.com/noteshare?id=651b25ee2104c37b9966c8ccaf4c2005&sub=420632CDDAEF407A87F36F2C74E3722F

 

 参考:

 

https://blog.csdn.net/tinyguyyy/article/details/51203935

https://blog.csdn.net/txl199106/article/details/45869557