考虑对每个怪物数量二分至少需要多少遗物。假设用了 kkk 个遗物,那么必然选前面这些怪物类型中,能挡住伤害最多的前 kkk 种。问题转化成求前 kkk 大的和。考虑用个平衡树维护之,就是两只 log\loglog 了。
此外我们还需要维护答案,我写了个支持区间覆盖的线段树。
代码。