自用。
题目传送门:[NOIP2001 普及组] 装箱问题 - 洛谷
题解:Inori_333
参考题解:无
/*P1049 [NOIP2001 普及组] 装箱问题https://www.luogu.com.cn/problem/P10492024/10/27 submit:inori_333
*/
#include <iostream>
#include <cstring>
using namespace std;int vol, n;//v表示箱子容积,n表示物品数量
int v[31];//v[i]表示第i个物品的体积
int dp[20005];//dp[i]表示体积为i的箱子最多能装体积为多少的物品int main(){cin >> vol >> n;memset(dp,0,sizeof(dp));for (int i = 1; i <= n;i++){cin >> v[i];}for (int i = 1; i <= n;i++){for (int j = vol; j >= v[i];j--){dp[j]=max(dp[j],dp[j-v[i]]+v[i]);}}cout << vol - dp[vol];
}