
分析
每件物品只能 用一次 因此是个 01背包模型
费用一共有两个,一个是 体积,一个是 完美值,因此是个 01背包二维费用问题
本题是一道裸题,直接上 闫氏DP分析法

初始状态:f[0][0][0]
目标状态:f[n][V][M]
Code
#include <bits/stdc++.h>
using namespace std;
long long dp[1001][1001],V,M,v,m,n,w;
int main()
{
cin>>V>>M>>n;
for(int i = 1; i <= n; i++)
{
cin>>w>>v>>m;
for(int j = V; j >= v; j--)
for(int k = M; k >= m; k--)
dp[j][k] = max(dp[j][k],dp[j - v][k - m] + w);
}
cout<<dp[V][M];
return 0;
}
分析
时间复杂度 :O(n×v1×v2)O(n×v1×v2)
空间复杂度 :O(v1×v2)