AcWing 1024. 装箱问题(01背包)

题目链接:点击这里
在这里插入图片描述
在这里插入图片描述
把每个物品的体积当成价值

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;
const int N = 20010;

int f[N];

int main()
{
    int m, n;   // m表示箱子容量,n表示物品数
    scanf("%d%d", &m, &n);
    
    for(int i = 1; i <= n; ++i)
    {
        int v;
        scanf("%d", &v);
        for(int j = m; j >= v; --j)
            f[j] = max(f[j], f[j - v] + v);
    }
    
    printf("%d\n", m - f[m]);
    
    return 0;
}
发布了844 篇原创文章 · 获赞 135 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/104978704