MnZn求助
查看原帖
MnZn求助
663638
Butterfly_qwq楼主2022/6/17 17:48
#include<bits/stdc++.h>
using namespace std;
struct rbsh
{
	int t,f,h;
}r[101];
int dp[101][101];
bool cmp(rbsh a,rbsh b)
{
	return a.t<b.t;
}
int main()
{
	int d,g;
	cin>>d>>g;
	for(int i=1;i<=g;i++)cin>>r[i].t>>r[i].f>>r[i].h;
	sort(r+1,r+g+1,cmp);
	for(int i=0;i<=d+25;i++)dp[0][i]=10;
	for(int i=1;i<=g;i++)
	{
		for(int j=0;j<=d+25;j++)
		{
			if(dp[i-1][j]-(r[i].t-r[i-1].t)>0)
			{
				dp[i][j]=max(dp[i][j],dp[i-1][j]+r[i].f-(r[i].t-r[i-1].t));
				dp[i][j]=max(dp[i][j],dp[i-1][j-r[i].h]-(r[i].t-r[i-1].t));
				if(j>=d)
				{
					cout<<r[i].t;
					return 0;
				}
			}
		}
	}
	int ans=10;
	for(int i=1;i<=g;i++)ans+=r[i].f;
	ans-=r[g].t;
	cout<<ans;
	return 0;
}
//dp[i][j]=max(dp[i][j],dp[i-1][j]+r[i].f-(r[i].t-r[i-1].t),dp[i-1][j-r[i].h]-(r[i].t-r[i-1].t))

样例输出55

2022/6/17 17:48
加载中...