P1507 NASA的食物计划 二维背包裸题
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e3+10; 4 int dp[maxn][maxn]; 5 int v[maxn],w[maxn],p[maxn]; 6 int main() 7 { 8 int vsum,wsum; 9 scanf("%d%d",&vsum,&wsum); 10 int n; 11 scanf("%d",&n); 12 for(int i=1;i<=n;i++){ 13 scanf("%d%d%d",&v[i],&w[i],&p[i]); 14 } 15 for(int i=1;i<=n;i++){ 16 for(int j=vsum;j>=v[i];j--) 17 for(int k=wsum;k>=w[i];k--){ 18 dp[j][k]=max(dp[j][k],dp[j-v[i]][k-w[i]]+p[i]); 19 } 20 } 21 printf("%d\n",dp[vsum][wsum]); 22 return 0; 23 }