主页/OI/SP14543-RANGESUM-Range-Sum
2026年5月5日预计 2 分钟阅读OI

题解:SP14543 RANGESUM - Range Sum

zbl2012
zbl2012博主 & 创作者

原题Link

好玩的题。

题目大意

给定一个长度为 nn 的序列,有 QQ 个操作。若 op=1op=1,则求 [l,r][l,r] 的区间和,否则将 xx 放在序列最前面。

Solution

看到 1N,Q1051\le N,Q\le 10^5,发现根据题意暴力模拟,最坏的时间复杂度是 O(QN)O(QN),明显不可以过。

考虑优化。

发现这题有一个区间求和操作,发现可能是用前缀和别问我为什么不是用树状数组和线段树,问就是这题是橙

那可能又有人问了:你这不是瞎搞吗?前缀和不是只能维护静态区间吗?你这题的区间会变化呀,每次都要重新预处理,不是很慢吗? 我刚开始看到这一也是这么想的,但是想了一想,发现,前缀和从数组头开始的预处理是 O(n)O(n) 的,但是如果你只在前缀和的末尾加上一个数,它还是 O(1)O(1) 的。

现在只需要把数组反转,就可以实现到 O(N+Q)O(N+Q) 的复杂度了。

文章留言区

已有 0 条精彩探讨

正在拼命加载留言中...

发表您的见解

※ 提倡客观理性讨论。留言需要经过安全核查,请勿注入恶意链接。
上一篇文章题解:P3472 [POI 2008] MAF-Mafia下一篇文章 题解:AT_abc287_h [ABC287Ex] Directed Graph and Query