完全背包问题,对于第一问,直接再01背包的基础上的内层循环反过来就行,没有过多描述 接下来是对于第二问,我们首先假设前面的有值或者从0转移过来进行转移,这样可以就可以保证这个背包一定是装满的,原理如下:对于开始0处进行转移直接加入就行,假设当前的体积为j,如果vis[j - a[i]]的结果不为0,说明前面的这个数值(j - a[i])一定是可以装满的,我们现在是在装满的基础上进行转移,这样转移后得到的结果一定是装满的情况 #include <bits/stdc++.h> using namespace std; #define in...