#include<bits/stdc++.h>
using namespace std;
int T,M;
int W[110],V[110];
int f[1010];
int main()
{
scanf("%d%d",&T,&M);
for(int i=1;i<=M;i++)
{
scanf("%d%d",&W[i],&V[i]);
}
for(int i=1;i<=T;i++)
{
for(int j=T;j>=0;j--)
{
if(j>=W[i])f[j]=max(f[j],f[j-W[i]]+V[i]);
cout<<f[i]<<endl;
}
}
cout<<f[T]<<endl;
//cout<<T<<endl;
return 0;
}
可以过小样例,大的会莫名其妙算出大数字
但是仔细查了很久都没有查出错!求救!!