AC

举杯消愁愁更愁,月底账单入水流  •  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;
}


评论:

请先登录,才能进行评论