P7446 [Ynoi2007] rfplca题解

发布时间 2023-12-19 20:17:21作者: hubingshan

P7446 [Ynoi2007] rfplca

可以用分块维护,记 $ b_i $ 表示这个块中第一个 \(a_i\) 不在块中的值

区间修改:
对于散块,直接暴力重构
对于整块,发现 \(b_i\) 所属点最多只会改变 \(\sqrt n\) 次,所以也暴力重构

查询:
考虑像倍增一样的过程,先把后面那个点的 \(b_i\) 一直往前跳,直到 \(b_i\) 在另一个点前面,接着两个点一起跳,直到 \(b_i\) 相同,接着在块内跳,直到相同即可