90分求助!
查看原帖
90分求助!
238885
Fat_Fish楼主2021/4/11 21:04
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int maxn=500;
#define reg register
int c[maxn], w[maxn],p[maxn],dp[maxn][maxn][maxn];
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n, k1,k2;
	cin >> k1 >> k2 >> n;
	for (reg int i = 1; i <= n; ++i) {
		cin >> c[i] >> p[i] >> w[i];
	}
	for (reg int i = 1; i <= n; ++i) {
		for (reg int j = 0; j <= k1; ++j) {
			for(reg int k=0; k<=k2; ++k) {
				dp[i][j][k] = max(dp[i][j][k],dp[i - 1][j][k]);
				if (j >= c[i]&&k>p[i]) {
					dp[i][j][k] = max(dp[i][j][k], dp[i - 1][j - c[i]][k-p[i]] + w[i]);
				}
			}

		}
	}
	cout << dp[n][k1][k2]<<'\n';
	return 0;
}

2021/4/11 21:04
加载中...