题解:
自己在这一类问题上想到的总是3^n的枚举法
首先背包从大到小排序
f[i]表示搞出为i的状态至少要用几个背包,g[i]表示最大剩余容量
这样就可以2^n*n
因为这么做利用了状态之间的先后顺序
代码: