蓝桥杯 01背包
问题:
#include<iostream>
#define maxn 5005
using namespace std;
int w[maxn],p[maxn];
int dp[202][maxn];
int main()
{
int n,m;
cin>>n>>m;
int i,j;
for(i=1;i<=n;i++)
cin>>w[i]>>p[i];
for(i=1;i<=n;i++)
{
for(j=0;j<=m;j++)
{
if(j<w[i])
dp[i][j]=dp[i-1][j];
else
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+p[i]);
}
}
cout<<dp[n][m]<<endl;
return 0;
}