直接套模板的完全背包
代码:
#include<stdio.h>
#include<string.h>
int dp[100010],a[110],b[110];
int m,n;
int Max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int i,j;
while(scanf("%d",&n)!=EOF)
{
memset(dp,0,sizeof(dp));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<n;i++)
scanf("%d%d",&a[i],&b[i]);
scanf("%d",&m);
for(i=0;i<n;i++)
{
for(j=b[i];j<=m;j++)
{
dp[j]=Max(dp[j],dp[j-b[i]]+a[i]);
}
}
printf("%d\n",dp[m]);
}
return 0;
}