考虑分块,每个块都是用 链表 维护的,并保证 \(size\) 和分块相当. 我们考虑一下怎么去查询,很显然,可以对值域分块,单点修改,记录前缀和,完全ojbk了,对每个块维护一个 \(pre , prb\) 数组 \(pre_{i,j}\) 数组表示 \(1~i\) 这些块中,出现了多少个 \(j\) \(prb_{i,j}\) 数组表示 \(1~i\) 这些块中,在值域块 \(j\) 的有多少个 零散部分查一查就好了,修改也是稳定 \(\sqrt n\) 的,插入也是. // powered…