会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
所有 Si>0,合法连续段越长,不折损时的重要度之和只会更大。因此第一问是经典滑动窗口:右端点右移,当占用和超过 B 时左端点右移,维护窗口内重要度之和的最大值。
第二问允许对窗口内最不重要的一块折损:占用减少 Mk−⌊Mk/2⌋,重要度少 Sk。折损代价
cost(L,R)=i=L∑RMi−(Mk−⌊Mk/2⌋)
随右端点增大而增大、随左端点增大而减小,仍可用双指针。重要度相同取占用最大的一块折损,用堆或有序集合维护 (minS,maxM)。