摘要: 发现可能出现的 42 的幂很少。如果只有操作 3,我们可以暴力 while,用线段树修改,每个位置只会被更新 log_{42}(maxValue) 次,总时间复杂度 O((n + q) * log_{42}(maxValue) * log_{2}(n))。在有操作 2 时,每个位置上数值不再单调增加,会影响前面的复杂度分析。此时引入一种懒惰状态,表示数值等于它后面第一个非懒惰状态的值。在操作 2 时,只修改 r 位置,并把 [l, r - 1] 置为懒惰状态。因为每次只需要增加 O(1) 个非懒惰状态,时间复杂度正确。 阅读全文
posted @ 2020-12-15 17:19 duyiblue 阅读(339) 评论(0) 推荐(0) 编辑