举杯消愁愁更愁,月底账单入水流 • 4个月前
#include<bits/stdc++.h>
using namespace std;
long long dp[5][1000005];
int w[1005],v[1005];
int main(){
int n,c;
cin>>n>>c;
for(int i=1;i<=n;i++) cin>>w[i]; //空间
for(int i=1;i<=n;i++) cin>>v[i]; //价值
for(int i=1;i<=n;i++){
for(int j=1;j<=c;j++){
if(j-w[i]>=0)
dp[i%2][j]=max(dp[(i-1)%2][j],dp[i%2][j-w[i]]+v[i]);
else dp[i%2][j]=dp[(i-1)%2][j];
}
}
cout<<dp[n%2][c]<<endl;
return 0;
}
评论:
请先登录,才能进行评论