1、B站视频链接:E15 背包DP 二维费用背包_哔哩哔哩_bilibili
#include <bits/stdc++.h>
using namespace std;
int f[101][101];
//f[j][k]第i件物品,体积<=j,重量<=k的最大价值
int main(){
int n,V,W;//物品、容量、承重
int v,w,val;//体积、重量、价值
cin>>n>>V>>W;
for(int i=1;i<=n;i++){//枚举物品
cin>>v>>w>>val;
for(int j=V;j>=v;j--){//枚举体积
for(int k=W;k>=w;k--){//枚举重量
f[j][k]=max(f[j][k],f[j-v][k-w]+val);
}
}
}
cout<<f[V][W];
return 0;
}
题目链接:榨取kkksc03 - 洛谷
#include <iostream>
using namespace std;
int f[210][210];
// f[j,k]:前i个物品,体积≤j,重量≤k 的最大价值
int main(){
int n, V, W; //物品 容量 承重
int v, w, val; //体积 重量 价值
cin>>n>>V>>W;
for(int i=1; i<=n; i++){ //物品
cin>>v>>w;
for(int j=V; j>=v; j--) //体积
for(int k=W; k>=w; k--) //重量
f[j][k]=max(f[j][k],f[j-v][k-w]+1);
}
cout<<f[V][W];
}