$\LARGE\color{orange}{刷题日记(算法提高课)}$
将一堆物品放入箱子中,最后期望箱子剩余体积最小,很显然是 01 背包问题
题目中并没有明确指出物品的价值是什么,但题目要求的是装入箱子当中的物品体积达到最大,因此物品的体积也是价值
最后我们输出总体积减去最大体积即可
完整代码:
#include <iostream>
using namespace std;
const int N = 2e4 + 10;
int f[N], v[N];
int n, m;
int main()
{
cin >> m >> n;
for(int i = 1; i <= n; i++) cin >> v[i];
for(int i = 1; i <= n; i++)
for(int j = m; j >= v[i]; j--)
f[j] = max(f[j], f[j - v[i]] + v[i]);
cout << m - f[m] << endl;
return 0;
}