连 续 区 间 计 数 连续区间计数 连续区间计数
最 初 想 法 \color{grey}{最初想法} 最初想法
一个区间合法当且仅当 m a x _ v − m i n _ v = = r − l max\_v-min\_v == r-l max_v−min_v==r−l, 移项得 m i n _ v = = m a x _ v − ( r − l ) min\_v == max\_v - (r-l) min_v==max_v−(r−l),
可以想到枚举 m i n _ v = A [ i ] min\_v = A[i] min_v=A[i], 记录左边第一个比 i i i 小的位置和右边第一个比 i i i 小的位置,
分别记为 L d [ i ] , R d [ i ] Ld[i], Rd[i] Ld[i],Rd[i], 然后在 ( L d [ i ] , R d [ i ] ) (Ld[i], Rd[i]) (Ld[i],Rd[i]) 中枚举 左端点属于 ( L d [ i ] , p ] (Ld[i], p] (Ld[i],p], 右端点属于 ( p , R d [ i ] ) (p, Rd[i]) (p,Rd[i]),
直接裸算时间复杂度期望 O ( n log 2 n ) O(n\log^2 n) O(nlog2n),