【HDU 4508】【完全背包】湫湫系列故事——减肥记II

#include "stdio.h"
#include "string.h"
int max(int a,int b)
{
    return a>b?a:b;
}
int main(int argc, char const *argv[])
{
    int num,ans;
    int v[105];
    int w[105];
    int dp[100005];
    while(~scanf("%d",&num))
    {
        memset(dp,0,sizeof(dp));
        for (int i = 0; i < num; ++i)
        {
            scanf("%d %d",&v[i],&w[i]);
        }
        scanf("%d",&ans);
        for(int i=0; i<num;i++)
            for (int j = w[i]; j<=ans; ++j)
            {
               dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
            }
        printf("%d\n",dp[ans]);
    }
    return 0;
}
一道完全背包。食物可以选取多次一样的。没有其他陷阱了。

你可能感兴趣的:(c,水题,背包问题)