混合背包,大致就是将前面的三种背包混合起来,对于物品个数,有三种表述方式——1个有限个无穷个,我们只需要将物品个数预处理一下,对于无限个的我们将物品价值置为负数,有限个则二进制优化分为多个物品,这样就可以将01背包和多重背包转化为一个问题。而另一个完全背包我们可以在进行dp遍历的时候对物品价值进行判断,如果小于0则进行前往后的完全背包遍历,否则从后往前进行01背包遍历即可。