#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=15005;
int value[3500],cost[3500];
int f[maxn];
int n,m;
void zeropack(int cost1,int value1)
{
for(int i=m; i>=cost1; i--)
{
f[i]=max(f[i],f[i-cost1]+value1);
}
}
int main()
{
int i,j;
while(~scanf("%d%d",&n,&m))
{
memset(cost,0,sizeof(cost));
memset(value,0,sizeof(value));
memset(f,0,sizeof(f));
for(i=1; i<=n; i++)
{
scanf("%d%d",&cost[i],&value[i]);
}
for(i=1; i<=n; i++)
{
zeropack(cost[i],value[i]);
}
printf("%d\n",f[m]);
}
return 0;
}
POJ 3624 01背包入门题目
最新推荐文章于 2021-05-06 10:25:40 发布