求助
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,x;
long long lose[1005],win[1005],use[1005];
long long f[1005];
int main()
{
cin>>n>>x;
for(int i=1;i<=n;i++)
cin>>lose[i]>>win[i]>>use[i];
for(int i=1;i<=n;i++)
{
for(int j=x;j>=0;j--)
{
if(j>=use[i])
f[j]=max(f[j]+lose[i],f[j-use[i]]+win[i]);
else f[j]+=f[j]+lose[i];
}
}
cout<<f[x]*5<<endl;
return 0;
}
——为什么这样不行
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,x;
long long lose[1005],win[1005],use[1005];
long long f[1005];
int main()
{
cin>>n>>x;
for(int i=1;i<=n;i++)
cin>>lose[i]>>win[i]>>use[i];
for(int i=1;i<=n;i++)
{
for(int j=x;j>=use[i];j--)
f[j]=max(f[j]+lose[i],f[j-use[i]]+win[i]);
for(int j=use[i]-1;j>=0;j--)
f[j]+=lose[i];
}
cout<<f[x]*5<<endl;
return 0;
}
——这样可以
(逃