Question:
标准的完全背包水题
Code:
#include"iostream"
#include"cstdio"
#include"cstdlib"
#include"cstring"
#define N 105
using namespace std;
int n;
int v;
int weight[N];
int value[N];
int dp[100005];
int maxp(int x,int y)
{
if(x>y) return x;
else return y;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++) scanf("%d%d",&value[i],&weight[i]);
scanf("%d",&v);
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
{
for(int j=0;j<=v;j++)
{
if(j>=weight[i]) dp[j]=maxp(dp[j],dp[j-weight[i]]+value[i]);
}
}
printf("%d\n",dp[v]);
}
return 0;
}