@wang

@wang

Sakira · 发布于 2024-11-24 · 浏览 361 回复 0
#include<bits/stdc++.h>
using namespace std;
int w[1001],v[1001];
int d[2][1000001];
int main(){
	int n,c;
	cin>>n>>c;
	for(int i=1;i<=n;i++) cin>>w[i];
	for(int j=1;j<=n;j++) cin>>v[j];
	for(int i=1;i<=n;i++){
		for(int j=1;j<=c;j++){
			if(j>=w[i]){
				d[i%2][j]=max(d[(i-1)%2][j-w[i]]+v[i],d[(i-1)%2][j]);
			}else{
				d[i%2][j]=d[(i-1)%2][j];
			}
		}
	}
	cout<<d[n%2][c];
	return 0;
}

全部回复 共 0 条

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

发表回复