求助
  • 板块P1833 樱花
  • 楼主lovelish
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/19 20:47
  • 上次更新2024/4/19 22:11:34
查看原帖
求助
760954
lovelish楼主2024/4/19 20:47

这题dp不能开 dp[n][t] 吗

WA了4个点

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int dp[10010][1010],sum[10010][1010]; 
int t,n;
int tj[10010],jz[10010],sl[10010];
int main()
{
	int a1,b1,a2,b2;
	char a,b;
	cin>>a1>>a>>b1>>a2>>b>>b2;
	t=(a2-a1)*60+b2-b1;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>tj[i]>>jz[i]>>sl[i];
	} 
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=t;j++)
		{
			sum[i][j]=sum[i][j-1];
			if(j>=tj[i]&&((sum[i][j]<sl[i])||(!sl[i]))&&dp[i][j-tj[i]]+jz[i]>dp[i-1][j]&&dp[i][j-tj[i]]+jz[i]>dp[i][j-1])
			{
				dp[i][j]=dp[i][j-tj[i]]+jz[i];
				sum[i][j]++;
			}
			else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
			//cout<<dp[i][j]<<" ";
		}
		//cout<<endl;
	}
	cout<<dp[n][t];
	return 0;
}
2024/4/19 20:47
加载中...