知道MLE的原因,但不会改。
其余错误根本不知道为什么。
本题运用了已经AC的采药代码,将01背包改成了完全背包,并最大化加大了数据范围,然而20%的数据都没有过。
代码如下
#include<bits/stdc++.h>
using namespace std;
int t,m,f[1001][100001],w[101],c[101];
int main()
{
cin>>t>>m;
for(int i=1;i<=m;i++) cin>>w[i]>>c[i];
for(int i=1;i<=m;i++) for(int j=t;j>=0;j--)
{
if(w[i]>j) f[i][j]=f[i-1][j];
else f[i][j]=max(f[i-1][j],f[i][j-w[i]]+c[i]);
}
cout<<f[m][t];
return 0;
}