自己想的一道数据结构,题目如下:
给定正整数 n 和一个关于 1∼n 的排列 b1,b2,...,bn。
要求维护一个数列 a1,a2,...,an,初值全为 0,有两种操作:
-
给定 l,r,x,把 al,al+1,...,ar−1,ar 都加上 x;
-
给定 l,r,求出 abl,abl+1,...,abr−1,abr 的和。
其中 1≤n,m≤105,m 是操作数,保证任何时刻的 ai 的绝对值不超过 1000。
在 {bn} 随机生成时,存在 O(nlog2n) 的做法。但是在刻意构造下会变成 O(n2logn),因此想问问有没有更好的解法。