#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <list>
#include <stack>
#include <algorithm>
using namespace std;
int main()
{
int N,M;
scanf("%d%d",&N,&M);
int i,j;
int dp[15000]={0};
int w[5000],v[5000];
for (i=0;i<=N-1;i++)
scanf("%d%d",&w[i],&v[i]);
for (i=0;i<=N-1;i++)
{
for (j=M;j>=0;j--)
{
if (j>=w[i] && dp[j-w[i]]+v[i]>dp[j])
dp[j]=dp[j-w[i]]+v[i];
}
}
printf("%d\n",dp[M]);
return 0;
}
POJ3624(01背包问题)
最新推荐文章于 2022-11-18 14:26:43 发布