@zhang

@zhang

天生我材必有难,千金散尽还债来 · 发布于 2024-12-01 · 浏览 425 回复 0
#include<bits/stdc++.h>
using namespace std;
int dp[2][501][1002];//前i个菜,花了v元,小明心情为k时小红心情的最大值
int main() {
	int n,v;
	cin>>n>>v;
	memset(dp,0Xf0,sizeof dp);
	dp[0][0][500]=0;
	for(int i=1; i<=n; i++) {
		int c,x,y;
		cin>>c>>x>>y;
		for(int j=0; j<=v; j++) {
			for(int k=0; k<=1000; k++) {
				if(k-x>=0&&k-x<=1000&&j-c>=0) {
					dp[i%2][j][k]=max(dp[(i-1)%2][j][k],dp[(i-1)%2][j-c][k-x]+y);
				} else {
					dp[i%2][j][k]=dp[(i-1)%2][j][k];
				}

			}
		}
	}
	int ans=0;
	for(int j=1; j<=v; j++) {
		for(int i=500; i<=1000; i++) {
			ans=max(ans,dp[n%2][j][i]);
		}
	}
	cout<<ans;
}

全部回复 共 0 条

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

发表回复