#include <iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{int dp[1001];
int value[1001];//物品价值
int size[1001];//物品体积
int n,v;
cin>>n>>v;
for(int i=0;i<n;i++)
cin>>size[i];
for(int i=0;i<n;i++)
cin>>value[i];
memset(dp,0,sizeof dp);//关键!
for(int i=0;i<n;i++)
for(int j=v;j-size[i]>=0;j--)
dp[j]=max(dp[j],dp[j-size[i]]+value[i]);//滚动数组减少内存
cout<<dp[v];
return 0;
}
0-1背包动态规划
最新推荐文章于 2024-05-17 23:37:37 发布