#include<iostream>   #include<cstdio>   #include<algorithm>   #include<cstring>   using namespace std;   const int maxn = 10100;   int value[maxn];   int vol[maxn];   int dp[maxn][maxn];   int DP[maxn];   int main(){           int n,m;           while(scanf("%d",&n)!= -1){         memset(dp,0,sizeof(dp));           for(int i=1;i<=n;i++)               scanf("%d",&value[i]);           for(int i=1;i<=n;i++)               scanf("%d",&vol[i]);           scanf("%d", &m);         for(int i=1;i<=n;i++){               for(int j=0;j<=m;j++){ //vol容量可能为0; j 的顺序无所谓                   if(j>=vol[i])                        dp[i][j] = max(dp[i-1][j] , dp[i-1][j-vol[i]] + value[i]);                   else                       dp[i][j] = dp[i-1][j];               }           }           printf("%d\n",dp[n][m]);           }       return 0;   }  
点赞 4

相关推荐

Wy_m:只要不是能叫的上名的公司 去实习没有任何意义 不如好好沉淀自己
点赞 评论 收藏
分享
牛客网
牛客企业服务