#include<bits/stdc++.h>
using namespace std;int main() {int v,n;cin>>v>>n;int a[30];int dp[20005];for(int i=0;i<n;i++){cin>>a[i];}memset(dp,0,sizeof(dp));// 设置所有元素为0,表示最大体积为0for(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];}
dp[j]
表示当前容量为 j
时能够装入的最大物品体积。