第二层循环要倒序
```cpp
#include<bits/stdc++.h>
using namespace std;
int c[30010],w[30010],f[30010];
int main()
{
int t,n,i,j;
cin>>t>>n;
for(i=1;i<=n;i++)
cin>>w[i]>>c[i];
for(i=1;i<=n;i++)
for(j=t;j>=w[i];j--)//此处倒序
f[j]=max(f[j],f[j-w[i]]+c[i]);
cout<<f[t];
}
```
by 皮某 @ 2017-09-30 23:21:03