寒冰王座

因为每件物品可以无限买,所以是完全背包。

三种商品重量手动赋值即可。

因为这道题求的是最大重量,所以状态转移方程改为 f[j] = max(f[j],f[j - w[i]] + w[i]) 。

#include<bits/stdc++.h>
using namespace std;
int w[4],t,f[10001];
int main()
{
    scanf("%d",&t);
    w[1]=150;w[2] = 200;w[3] = 350;
    for(int i = 1;i <= 3;i ++)
    {
        for(int j = w[i];j <= t;j ++)
        {
            f[j] = max(f[j],f[j - w[i]] + w[i]);
        }
    }
    printf("%d",t-f[t]);
    return 0;
}
    
原文地址:https://www.cnblogs.com/ying-xue/p/han-bing-wang-zuo.html