关于二进制多重背包
查看原帖
关于二进制多重背包
332549
幽灵特工楼主2021/7/25 20:31

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);
			}
		}
	}
2021/7/25 20:31
加载中...