AC

键盘敲碎夜深沉,代码如麻乱假真 · 发布于 2024-11-24 · 浏览 435 回复 0
#include<bits/stdc++.h>
using namespace std;
struct item{
	int w,v;	
};
vector<item> group[105];
long long dp[105][10005];
int main(){
	int n,c,k;
	cin>>n>>c>>k;		//c组
	for(int i=1;i<=n;i++){
	 	int w,v,k;		//k表示{w,v}属于哪个组
	 	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(int it=0;it<group[i].size();it++){
				if(j>=group[i][it].w){		//枚举选这个组中哪一个
					dp[i][j]=max(dp[i][j],dp[i-1][j-group[i][it].w]+group[i][it].v);
				}
			}
		}
	}
	cout<<dp[k][c]<<endl;
	return 0;
}

全部回复 共 0 条

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

发表回复