与01背包结合的:
#include<bits/stdc++.h> using namespace std; const int maxn=1e3+5; int dp[maxn][maxn]; int main(){ int n,V,M;cin>>n>>V>>M; for(int i=1;i<=n;i++){ int 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; }