Vijos P1334 NASA的食物计划
解法
二维费用01背包问题
解法就是先枚举物品再枚举条件这里两个条件所以要枚举两个for
代码
#include <bits/stdc++.h>
using namespace std;
int dp[500][500],v[100],m[100],w[100];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int vv,mm;
cin>>vv>>mm;
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>v[i]>>m[i]>>w[i];
for(int i=0;i<n;i++)
for(int j=vv;j>=v[i];j--)
for(int k=mm;k>=m[i];k--)
dp[j][k]=max(dp[j][k],dp[j-v[i]][k-m[i]]+w[i]);
cout<<dp[vv][mm];
}