莫名数据范围导致的AC和RE(和WA)

P1417 烹调方案

妖火之灵 @ 2019-09-20 21:21:40

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
int n,t;
struct food
{
    long long a,b,c;
}m[55];
long long f[100005];
bool cmp(food a,food b)
{
    return a.c*b.b<a.b*b.c;
}
int main()
{
    long long i,j,k;
    cin>>t>>n;
    for(i=1;i<=n;i++) cin>>m[i].a;
    for(i=1;i<=n;i++) cin>>m[i].b;
    for(i=1;i<=n;i++) cin>>m[i].c;
    sort(m+1,m+n+1,cmp);
    f[0]=0;
    for(i=1;i<=n;i++)
     for(j=t;j-m[i].c>=0;j--)
     {
        f[j]=max(f[j],f[j-m[i].c]+m[i].a-m[i].b*j);
     }
    long long s=0;
    for(i=1;i<=t;i++)
        s=max(s,f[i]);
    cout<<s;
return 0;
}

将此代码中的m数组改为100005便AC

struct food
{
    long long a,b,c;
}m[100005];

求大佬指教为什么,n的数量不是小于50吗?


by 氢离子已超标 @ 2020-01-18 10:29:05

和你一毛一样,我也不晓得为什么


by 氢离子已超标 @ 2020-01-18 10:29:55

总算知道哪里错了


|