蒜头君的购物袋1-计蒜课

题目:

蒜头君去超市购物,他有一只容量为 VVV 的购物袋,同时他买了 nnn 件物品,已知每件物品的体积 viv_ivi。蒜头君想知道,挑选哪些物品放入购物袋中,可以使袋子剩余的空间最小。

思路:以重量作为状态变量,记录每阶段装了多大v。

AC代码:

#include<iostream>
using namespace std;
int dp[20005]={0};
int main(){
    int V,n,w,j;
    cin>>V>>n;
    for(int i=1;i<=n;i++){
        for(cin>>w,j=V;j>=w;j--){
            if(dp[j]<dp[j-w]+w)
            dp[j] = dp[j-w]+w;
        }
    }
    cout<<V-dp[V];
    return 0;
}

点赞