#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[105][100010] = {0}, N, C, v[105], w[105];
int main() {
cin >> N >> C;
for (ll i = 1; i <= N; i++) {
cin >> w[i];
}
for (ll i = 1; i <= N; i++) {
cin >> v[i];
}
for (ll i = 1; i <= N; i++) {
for (ll j = 1; j <= C; j++) {
if (j - w[i] >= 0)
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + v[i]);
else
dp[i][j] = dp[i - 1][j];
}
}
cout << dp[N][C];
return 0;
}
全部回复 共 0 条
还没有人回复。往下写第一条。
发表回复
登录后即可回复本帖,与出题人和同学一起讨论。
登录