二维费用背包 分组背包
二维费用背包模型
例题.小蓝的神秘行囊
link:5.小蓝的神秘行囊 - 蓝桥云课
code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll dp[107][107];int main()
{ll N, V, M; cin>>N>>V>>M;for(int i = 1; i <= N; i++){ll v, m, w; cin>>v>>m>>w;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]<<endl;return 0;
}
分组背包模型
例题:小明的背包5
link:1.小明的背包5 - 蓝桥云课
code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll dp[107][107];int main()
{ll N, V, M; cin>>N>>V>>M;for(int i = 1; i <= N; i++){ll v, m, w; cin>>v>>m>>w;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]<<endl;return 0;
}