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

 •  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;
}


评论:

请先登录,才能进行评论