for (int i = 0; i < n; i++) {
for (int j = M; j >= w[i]; j--) {
dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
}
}
for (int i = 0; i < n; i++) {
for (int j = w[i]; j <= M; j++) {
dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
}
}
关注我查看更多精华内容
原文:https://www.cnblogs.com/JihuiPeng/p/13661006.html