❤ • 27天前
#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;
}
评论:
请先登录,才能进行评论