AC

robin88 · 发布于 2024-05-01 · 浏览 537 回复 0

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;

}

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复