题目描述
有一个箱子容量为 𝑉,同时有 𝑛 个物品,每个物品有一个体积。
现在从 𝑛 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。
输入格式
第一行共一个整数 𝑉,表示箱子容量。
第二行共一个整数 𝑛,表示物品总数。
接下来 𝑛 行,每行有一个正整数,表示第 𝑖i 个物品的体积。
输出格式
- 共一行一个整数,表示箱子最小剩余空间。
输入
24 6 8 3 12 7 9 7
输出 #1
0
说明/提示
对于100% 数据,满足 0<𝑛≤30,1≤𝑉≤20000。
V = int(input()) n = int(input()) w = [0] dp = [0] * 100010 for i in range(n): x = int(input()) w.append(x) for i in range(1, n + 1): for j in range(V, w[i] - 1, -1): dp[j] = max(dp[j], dp[j - w[i]] + w[i]) ans = V - dp[V] print(ans)