题解-序列终结者
这是模板,所有平衡树的题差不多都是模板。
参考资料
暂无
大纲
题解-序列终结者
Introduction \texttt{Introduction} Introduction
Description \texttt{Description} Description
Solution \texttt{Solution} Solution
Code \texttt{Code} Code
Introduction \color{#000}\texttt{Introduction} Introduction
蒟蒻初学平衡树一日,做此题耗时五,虽错不奇,记此文以典为人,以堑为己。
Description \color{#000}\texttt{Description} Description
序列终结者
有一个 N N N 个数的序列 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an 刚开始时都为 0 0 0,有 M M M 个操作如下:
- 将 [ L , R ] [L,R] [L,R] 这个区间内的所有数加上 V V V。
- 将 [ L , R ] [L,R] [L,R] 这个区间翻转,比如 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 变成 4 , 3 , 2 , 1 4,3,2,1 4,3,2,1。
- 求 [ L , R ] [L,R] [L,R] 这个区间中的最大值。
数据范围: 1 ≤ N ≤ 5 × 1 0 4 1\le N\le 5\times 10^4 1≤N≤5×104, 1 ≤ M ≤ 1 0 5 1\le M\le 10^5 1≤M≤105。
Solution \color{#000}\texttt{Solution} Solution
区间翻转操作就说明要用 Splaytree \texttt{Splaytree} Splaytree 了(速学平衡树)。用结构体 ( n o d e ) { d , v } (node)\{d,v\} (