我这题f[]的初始值如果是-1或0之类的可以5个点,如果是-32767的话可以过9个点,如果是-32768即-maxint的话就可以AC...为什么会这样....
#include<iostream>
using namespace std;
long long n,m,best=0,i,j;
long a[5001],w[100001],v[5001];
const int maxint=2<<15-1;
inline long max(long a,long b){return a>b?a:b;}
main(){
cin>>n>>m;
for(i=1;i<=m;i++)w[i]=-maxint;//就这里的问题
for(i=1;i<=n;i++)cin>>a[i]>>v[i];
for(i=1;i<=n;i++)
for(j=0;j<=m;j++)
if(j-a[i]>=0)w[j]=max(w[j],w[j-a[i]]+v[i]);
cout<<w[m];
}