NC16693 装箱问题

题目

  • 原题地址:装箱问题
  • 题目编号:NC16693
  • 题目类型:DP、01背包
  • 时间限制:C/C++ 1秒,其他语言2秒
  • 空间限制:C/C++ 262144K,其他语言524288K

1.题目大意

  • n个物品任取若干个装入箱内,求箱子的剩余空间的最小值

2.题目分析

  • c[i][j]表示前i个物品在容量为j时的最大体积

3.题目代码

#include <bits/stdc++.h>

using namespace std;

int n, v, a[35], c[35][20005];
int dp(int i,int j) {
    if(c[i][j]>0) return c[i][j];
    if(!i) return 0;
    c[i][j] = (j>=a[i-1])?max(dp(i-1,j),dp(i-1,j-a[i-1])+a[i-1]):dp(i-1,j);
    return c[i][j];
}
int main() {
    cin >> v >> n;
    for(int i=0;i<n;i++) cin >> a[i];
    cout << v-dp(n,v) << endl; 
}
posted @   仪战群儒  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示