多重背包·二进制

10 分钟

把一种有 c 件的物品拆成 1、2、4…这样的“打包件”,能用很少的包组合出 0~c 的任意件数,这叫二进制拆分。原来要拆成 c 个,现在只需约 log c 个包,再跑 01 背包,大大加速。

小纸条

某物品有 7 件,二进制拆分成几个包?件数各是多少?

登录 后可看答案

多重背包·二进制 · 算法进阶 · op599 课程