记录一下二刷基础课中的遇到的还是不会或者忘记的知识点:
多重背包的二进制优化:
我们首先确认三点:
(1)我们知道转化成01背包的基本思路就是判断我是取了你好呢还是不取你好。
(2)我们知道任意一个实数可以由二进制数来表示,也就是2^0~2^k其中一项或几项的和。
(3)这里多重背包问的就是每件物品取多少件可以获得最大价值。
由此我们可以想到,我们把物品按照二进制分堆,并且应用01背包的思想的得出的结果是和每次询问每种物品的每一件物品效果是一样的。但时间复杂度就从𝑂(𝑛^3)降到O(n^2logS).真的太神奇了。
———————2024.6.5