幻梦 Dream with Dynamic
考虑对于所有的加法操作都是全局的,那么可以打上一个懒标记记录,这样时间复杂度为 。
对于 ,第一次操作的时候暴力修改,时间复杂度为 。接下来开一个桶,维护在 之后 个元素在 之后对应的值和真实的值。对于以后的修改,只需要遍历这 个桶修改其真实的值就可以了。
对于询问操作,在没有进行 的时候,直接返回真实值和懒标记的和。对于进行过 的数,考虑在桶中找出通过映射的值 找出真实值。
对于区间加并非全局的情况,如果横跨整块那么处理与上面一样。对于散块的区间加,就有可能会破坏这个桶,那么考虑重新计算并且将整块标记为没有处理过 。