AC

robin88  •  2个月前


include

using namespace std; int dp[2][1000000]={0}; int weight[100]={0},value[100]={0}; int main(int argc, char** argv) {

int m,n;
cin>>m>>n;
for (int i = 1; i <=m; i++) {
	cin>>weight[i];
}
for (int i = 1; i <=m; i++) {
	cin>>value[i];
}

for(int i=1;i<=m;i++)
{
	for(int j=1;j<=n;j++)
	{
		if(j<weight[i]){
			dp[1][j]=dp[0][j];
		}
		else{
			dp[1][j]=max(value[i]+dp[0][j-weight[i]], dp[0][j]); 
		}
		
	}
	for(int j=1;j<=n;j++)
	{
		dp[0][j]= dp[1][j];
	}
}
cout<<dp[1][n];
return 0;

}


评论:

请先登录,才能进行评论