历史研究

发布时间 2023-08-02 11:44:37作者: wscqwq

历史研究

思路

考虑到维护最大值的话,删除操作不太方便,我们考虑回滚莫队。

我们对于左端点在一个块内的情况一起处理,分两类讨论:

  1. 右端点也和左端点在一个块内,那么直接暴力即可,然后再重做一遍清空。复杂度 \(O(\sqrt n)\)
  2. 右端点在另一边,此时右端点方向我们按照正常莫队的方法,而对于在块内的,我们还是暴力。正常莫队复杂度就是 \(O(n\sqrt n)\),再加一个暴力一次 \(\sqrt n\)

题目中询问与序列长度同阶,所以复杂度 \(O(n\sqrt n)\)

注意需要离散化。

代码