TAG
- 芝士水题、算法 − 【 D P − 背包问题、 D P − m i n 】 芝士水题、算法 - 【DP - 背包问题、DP - min】 芝士水题、算法−【DP−背包问题、DP−min】时间复杂度
- O ( N ∗ V ) O(N \ast V) O(N∗V)
//
#include <bits/stdc++.h>
using namespace std;
// #define int long long
const int N = 2e5 + 6;
int in[N], dp[N];
void solve() {
int v, n;
scanf("%d%d", &v, &n);
for (int i = 1; i <= n; i++) scanf("%d", &in[i]);
for (int i = 1; i <= n; i++) {
for (int j = v; j >= in[i]; j--) {
dp[j] = max(dp[j], dp[j - in[i]] + in[i]);
}
}
printf("%d\n", v - dp[v]);
}
signed main() {
int t = 1;
// scanf("%d", &t);
while (t--) solve();
return 0;
}
实现细节
最小值转换成最大值
参考示意图
-
`
参考链接
- `
作者 | 乐意奥AI