还是选与不选的问题并且只能选一次,所以是01背包,但是这个题目是个二维的01背包,因为它必须要满足两个条件,这个是满足体积的情况下,一个是满足质量的情况下
#include<bits/stdc++.h>
using namespace std;
const int N=500;
int f[N][N];
int a[N],b[N],w[N];
int main(){
int n,m;
cin>>n>>m;
int x;
cin>>x;
for(int i=1;i<=x;i++){
cin>>a[i]>>b[i]>>w[i];
}
for(int i=1;i<=x;i++){
for(int j=n;j>=a[i];j--){
for(int k=m;k>=b[i];k--){
f[j][k]=max(f[j][k],f[j-a[i]][k-b[i]]+w[i]);
}
}
}
cout<<f[n][m];
return 0;
}
标签:01,P1507,int,cin,--,NASA,食物
From: https://www.cnblogs.com/yufan1102/p/17826520.html