AC(理解转移方程式就ok)

❤ · 发布于 2025-10-28 · 浏览 275 回复 0
#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 条

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

发表回复