本题二维的做法已知晓,想用三维背包再试一试,结果挂掉不知道挂在哪里了…
之前翻帖子发现有和我一个问题的,但是他说忘初始化了,这里的背包不都是 0 吗,还需要初始化吗?
#include<bits/stdc++.h>
using namespace std;
int n,VM,MM,v[55],m[55],w[55],dp[55][405][405];
int main(){
cin>>VM>>MM>>n;
for(register int i=1;i<=n;++i)cin>>v[i]>>m[i]>>w[i];
for(register int i=1;i<=n;++i)
for(register int j=v[i];j<=VM;++j)
for(register int k=m[i];k<=MM;++k)
dp[i][j][k]=max(dp[i-1][j][k],dp[i-1][j-v[i]][k-m[i]]+w[i]);
cout<<dp[n][VM][MM]<<endl;
}