@wang

@wang

Sakira · 发布于 2024-11-24 · 浏览 478 回复 0
#include<bits/stdc++.h>
using namespace std;
struct item {
	int m,v;
};
vector<item> group[101];
int dp[101][10001];
int main() {
	int n,c,k;
	cin>>n>>c>>k;
	for(int i=1; i<=n; i++) {
		int w,v,k;
		cin>>w>>v>>k;
		group[k].push_back({w,v});
	}
	for(int i=1; i<=k; i++) {
		for(int j=1; j<=c; j++) {
			dp[i][j]=dp[i-1][j];
			for(item it:group[i])
				if(j>=it.m) {
					dp[i][j]=max(dp[i][j],dp[i-1][j-it.m]+it.v);
				}
		}
	}
	cout<<dp[k][c];
	return 0;
}

全部回复 共 0 条

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

发表回复