洛谷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 }

 

posted @ 2019-01-24 12:57  宇興  阅读(202)  评论(0编辑  收藏  举报