30分求助
查看原帖
30分求助
1200401
wnqnld_llx楼主2024/9/25 17:36
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+10;
#define int long long
int n,x,ans;
struct man{
	int lose,win,use;
	bool do_it;
}a[maxn];
int dp[maxn][maxn];
signed main(){
	//freopen("wb.in","r",stdin);
	//freopen("wb.out","w",stdout);
	cin>>n>>x;
	for(int i=1;i<=n;i++){
		cin>>a[i].lose>>a[i].win>>a[i].use;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=x;j++){
			if(j<a[i].use){
				dp[i][j]=dp[i-1][j]+a[i].lose;
			}
			else{
				dp[i][j]=max(dp[i-1][j]+a[i].lose,dp[i-1][j-a[i].use]+a[i].win);
				if(dp[i-1][j]+a[i].lose<dp[i-1][j-a[i].use]+a[i].win){
				}
			}
		}
	}
	cout<<dp[n][x]*5;
	return 0;
}
2024/9/25 17:36
加载中...