01背包变题 | #装箱问题#

装箱问题

https://www.nowcoder.com/practice/c990bd0bf8e04bfbb19c0964401c8f77

#include <bits/stdc++.h>
using namespace std;
 


/**

有一个箱子容量为 V ,同时有n个物品,每个物品有一个体积(正整数)。每个物品只能使用一次。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。

*/

 
int main()
{

    int V,n;
    cin>>V>>n;
    vector<int> a(n); 
    int no = 0;
    vector<int> dp(V+1,no); 
    for(int i=0;i<n;i++) 
        cin>>a[i];
    for(int i=0;i<n;i++) {
        for(int j=V;j>=a[i];j--)
            dp[j] = max(dp[j],dp[j-a[i]]+a[i]);
    }
    cout << V- dp[V] <<endl;
    
    return 0;
}

算法常用解题技巧 文章被收录于专栏

算法常用解题技巧

全部评论

相关推荐

12-08 18:59
东北大学 Java
Java抽象带篮子:外卖项目可以看看我的详细的外卖话术,里面还写了怎么描述项目,还为了提高含金量额外增加了很多技术亮点呢。另外我这边还有个7000多字的轮子项目话术,可以狠狠的速成,需要的似我
点赞 评论 收藏
分享
求个公司要我:接好运
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务