p1802

p1802

题目链接
简单的动态规划;
设f[i][j]为打第i个怪,花j瓶药能获得的最大经验,容易想到f[i][j]由f[i-1][j]+l[i]和f[i-1][j-u[i]]+w[i]转移而来;
代码:

#include<bits/stdc++.h>
using namespace std;
long long n,x,y,u[1005],w[1005],l[1005],f[1005][1005];
void shuru(){//独具一格的输入函数
	cin>>n>>x;
	for(int i=1;i<=n;i++){
		cin>>l[i]>>w[i]>>u[i];
	}
	return;
}
int main(){
	shuru();
	f[0][0]=0;
	for(int i=1;i<=n;i++){
		for(int j=0;j<=x;j++){
			if(j-u[i]>=0) y=max(f[i-1][j-u[i]]+w[i],f[i-1][j]+l[i]);//转移方程
			else y=f[i-1][j]+l[i];
			f[i][j]=max(f[i][j],y);
		}
	}
	cout<<5*f[n][x];
	return 0;	
}
posted @ 2025-09-19 21:10  Turkey_VII  阅读(9)  评论(0)    收藏  举报