RT,为什么这样写会获得一个比答案更大的值
for (int i = 1; i <= n; i++) { int num = min(m[i], W / w[i]); for (int k = 1; k <= num; k <<= 1) { for (int j = W; j >= k * w[i]; j--) { dp[j] = max(dp[j], dp[j - k * w[i]] + v[i] * k); } } }