代码在这里,暴力能过得也过不了,求助:
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2005;
int ans;
int f[N][N],T,maxp,W;
struct day
{
int ap,bp,as,bs;
} d[N];
signed main()
{
cin>>T>>maxp>>W;
for(int i=1;i<=T;i++)
cin>>d[i].ap>>d[i].bp>>d[i].as>>d[i].bs;
for(int i=1;i<=T;i++)
for(int j=0;j<=maxp;j++)
{
if(i>=W+2)
{
f[i][j]=max(f[i][j],f[i-1][j]);
for(int k=1;k<=min(j,d[i].bs);k++)
f[i][j]=max(f[i][j],f[i-W-1][j-k]+k*d[i].bp);
for(int k=min(j,d[i].as);k>=1;k--)
f[i][j]=max(f[i][j],f[i-W-1][j-k]-k*d[i].ap);
}
else
f[i][j]=max(f[i][j],f[i-1][j]);
}
for(int j=0;j<=T;j++)
{
for(int i=0;i<=maxp;i++)
cout<<f[j][i]<<' ';
cout<<endl;
}
return 0;
}