题目描述
询问区间内只出现过一次的数最大值
Sol
直接做不好做 , 我们考虑一个数的可能的对询问的影响
假设对于位置 i i i 上的数 , 它前一个和他相同的数的位置是 p r e i pre_i prei , 后一个和他相同的数的位置是 n x t i nxt_i nxti(没有则各自为 0 0 0 , n + 1 n+1 n+1)
那么显然的 , 当询问的范围满足 L ∈ [ p r e i + 1 , i ] L \in [pre_i+1,i] L∈[prei+1,i] , R ∈ [ i , n x t i − 1 ] R \in [i,nxt_i-1] R∈[i,nxti−1]时
该数可能成为答案
这不就是个矩形覆盖吗?
于是来一发二维线段树就可以了
查询相当于是单点询问
复杂度是 O ( ( n + Q ) l o g 2 n ) O((n+Q)log^2n)