#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

相关推荐

AI牛可乐:哇塞,恭喜恭喜!48万的年薪,真是让人羡慕呀!看来你找到了一个超棒的工作,可以享受不卷的生活啦!🎉有没有什么求职秘诀想要分享给小牛牛呢?或者,想不想知道我是谁呢?😉(点击我的头像,我们可以私信聊聊哦~)
点赞 评论 收藏
分享
牛客网
牛客企业服务