纯01背包,没有任何转化。
#include<iostream>
#include<algorithm>
using namespace std;
int w[5000],v[5000];
int f[15000];
int main()
{
int n,m;
//while(cin>>n>>m)
//{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>w[i]>>v[i];
f[i]=0;
}
for(int i=1;i<=n;i++)
for(int j=m;j>=w[i];j--)
f[j]=max(f[j],f[j-w[i]]+v[i]);
cout<<f[m]<<endl;
//}
return 0;
}