Acwing 1019庆功会

#include
using namespace std;
int n, m;
int f[6010];
int main(){
    cin >> n >> m;
    for(int i = 1; i <= n; i ++){
        int v, w, s;
        cin >> v >> w >> s;
            for(int j = m; j >= 0;j --)
                 for(int k = 0; k <= s; k ++)
                    if(j >= k * v)
                    	f[j] = max(f[j], f[j - v * k] + w * k);
    }
    cout << f[m];
    return 0; 
}

最简单的多重背包,暴力过就好了。

你可能感兴趣的:(多重背包,题解,Acwing)