A题RE求救!!!!!!!!

#include<bits/stdc++.h>
using namespace std;
dp[i][j]:
i:遍历下标
j:剩余时间
*/
int n,h,t,p[222],d[222],c[222],dp[222][4000];
int main()
{
    scanf("%d%d%d",&n,&h,&t);
    for (int i=1;i<=n;i++)
    {
        scanf("%d%d%d",&p[i],&d[i],&c[i]);
    }
    h*=60;
    memset(dp,-0x3f,sizeof(dp));
    for (int i=1;i<=n;i++)
    {
    	dp[i][h]=0;
    	for (int m=1;m*t<=h;m++)
    	{
    		dp[i][h-m*t]=(p[i]+(p[i]-(m-1)*d[i]))*m/2;
//    		assert(h-m*t>=0);
		}
	}
    for (int i=1;i<=n;i++)
    {
        for (int j=h;j>=0;j++)
        {
            for (int k=0;k<=n;k++)
            {
                dp[i][j]=max(dp[i-1][j],dp[i-1][j+t*k+c[i-1]]+(2*p[i]+(k-1)*d[i])*k/2);
            }
        }
    }
    int mx=0;
    for (int i=1;i<=n;i++) for (int i=0;i<=h;i++) mx=max(mx,dp[n][i]);
    printf("%d",mx);
    return 0;
}
1 个赞

RE?
开大点呗

2 个赞

第三行上面忘加了个*/,跟大家说一下

2 个赞

我尝试过开dp[4000][4000],但还是RE

2 个赞

题目范围多大

2 个赞

n<=200,h<=10,这是dp中的两个数

2 个赞


你看看有可能是那种问题

2 个赞

都没有

2 个赞

你这个倒数第四行寻找答案时怎么两层for循环都是i啊

3 个赞

也对

3 个赞

哦,我眼瞎了

3 个赞