洛谷P1507 NASA的食物计划
1 //二维费用背包 2 #include<bits/stdc++.h> 3 using namespace std; 4 const int maxn=55; 5 const int maxv1=405; 6 const int maxv2=405; 7 int v1[maxn],v2[maxn],w[maxn],n,v1_tot,v2_tot,f[maxv1][maxv2]; 8 int main() 9 { 10 scanf("%d%d%d",&v1_tot,&v2_tot,&n); 11 for(int i=1;i<=n;++i) scanf("%d%d%d",&v1[i],&v2[i],&w[i]); 12 for(int i=1;i<=n;++i) 13 for(int j=v1_tot;j>=v1[i];--j) 14 for(int k=v2_tot;k>=v2[i];--k) 15 f[j][k]=max(f[j][k],f[j-v1[i]][k-v2[i]]+w[i]); 16 printf("%d",f[v1_tot][v2_tot]); 17 return 0; 18 }