我第一个点就WA了,并且只有第一个点WA。
此题似乎并未说必须要吃x瓶药,所以为何不能将整个f都算一遍,并取最大值?为什么必须输出5fx?
下面是第一个点WA的90分代码
#include<bits/stdc++.h>
using namespace std;
long long n,x,f[1005],ans,u[1005],w[1005],l[1005];
int main(){
cin>>n>>x;
for(int i=1;i<=n;i++)cin>>l[i]>>w[i]>>u[i];
for(int i=1;i<=n;i++)
for(int j=x;j>=0;j--)
if(j>=u[i])f[j]=max(f[j]+l[i],f[j-u[i]]+w[i]);
else f[j]+=l[i];
for(int i=1;i<=x;i++)ans=max(ans,f[i]*5);
cout<<ans;
return 0;
}
改成cout<<f[x]*5
直接就过了