全部评论 5

  • #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int w[114514], dp[114514];
    main() {
        int V;
        cin >> V;
        int n;
        cin >> n;
        for(int i = 0; i < n; i ++) cin >> w[i];
        for(int i = 0; i < n; i ++) {
            for(int j = V; j >= w[i]; j --) {
                dp[j] = max(dp[j], dp[j-w[i]]+w[i]);
            }
        }
        cout << V-dp[V];
        return !1;
    }
    

    你试试这个代码,不懂的问我

    2025-09-07 来自 四川

    0
  • 或许是越界了?

    2025-09-07 来自 四川

    0
  • 你这个代码太多了吧,不用这么复杂,试试一维数组

    2025-01-04 来自 江苏

    0
  • dp的模板理解之后就直接套了,不必弄那么复杂吧

    2023-08-22 来自 安徽

    0
  • 可设一个元素个数为 max(v)+1的数组dp[20001],里面任意一个元素dp[i]表示箱子容积为 i 时可放入的物品的体积。因为物品的体积并不是单位体积,因此dp[i]并不一定等于 i,例如有3个物体,体积分别为3,4,5,那么容积为3和4的箱子可放入的物品的体积均为3,即dp[3] = dp[4] = 3。对于每一个物体,都有两种选择-放入或者不放入,所以外层循环可对每个物品进行

    2023-03-17 来自 上海

    0
暂无数据

提交答案之后,这里将显示提交结果~

首页