HDU 2844 Coins (多重背包+二进制优化)
首先这是一道多重背包的裸题,题意在代码中的注释里有。多重背包就是所给的物品是有限的(任意个),我们则可以把多重背包的问题转换成01背包和完全背包来求解。首先我们先把01背包和多重背包的过程封装成函数,需要用的时候传参过去就好了,然后我来解释一下什么时候用01背包,什么时候用完全背包。我们先不考虑价值,假如说A的重量是3,有10个,B的重量是5,有2个,而你的背包的最大重量为15。对于A来说,3*10=30,它大于你的背包的最大重量,可以夸张的当成A物品是有无限个的,因为在你背包重量的允许下A物品是想装多少.
转载
2021-03-26 11:27:03 ·
127 阅读 ·
0 评论