蒟蒻4分求助
查看原帖
蒟蒻4分求助
709380
ttltony楼主2023/2/21 17:12

我的代码:

#include <iostream>

using namespace std;

const int MAXN = 1e3 + 1;

int n, m, t;
int a[MAXN], b[MAXN], group[MAXN], g[MAXN][MAXN], dp[MAXN];

int main() {
	cin >> m >> n;
	for (int i = 1; i <= n; i ++ ) {
		int x;
		cin >> a[i] >> b[i] >> x;
		t = max(t, x);
		group[x] ++ ;
		g[x][group[x]] = i;
	}
	for (int i = 1; i <= t; i ++ )
		for (int j = m; j >= 0; j -- )
			for (int k = 1; k <= group[i]; k ++ )
				if (j > a[g[i][k]])
					dp[j] = max(dp[j], dp[j - a[g[i][k]]] + b[g[i][k]]);
	cout << dp[m] << endl;
	return 0;
}

提交记录

2023/2/21 17:12
加载中...