考虑链上的联通块性质。

发现对于f(l,r)f(l,r)f(l,r)中,设一个联通块[x,y][x,y][x,y](位置),那么它一定满足ax1[l,r],ay+1[l,r],ax[l,r],ay[l,r]a_{x-1}∉[l,r],a_{y+1}∉[l,r],a_x∈[l,r],a_y∈[l,r]ax1/[l,r],ay+1/[l,r],ax[l,r],ay[l,r]

于是我们只用数这个序列中有多少个相邻的位置使他们一个在区间里,一个不在,然后除以222,就是联通块个数。

于是它O(n3)O(n^3)O(n3)啦!

于是它<mtext>TLE on test 9</mtext>\text{TLE on test 9}TLE on test 9啦。。。

然后我们发现,lll固定时,对于一个相邻位置:

如果ai,ai+1a_i,a_{i+1}ai,ai+1都小于lll,那扔掉。

否则如果有一个小于iii,那就在max(ai,ai+1)\max(a_i,a_{i+1})max(ai,ai+1)加入。

否则它只会在 min(ai,ai+1)\min(a_i,a_{i+1})min(ai,ai+1) 的时候加入,在 max(ai,ai+1)\max(a_i,a_{i+1})max(ai,ai+1) 时扔掉。

然后它O(n2)O(n^2)O(n2)啦!

于是它<mtext>TLE on test 11</mtext>\text{TLE on test 11}TLE on test 11啦。。。

于是我们稍微一分析,发现答案可以写成

i=1nj=0n[aj,aj+1<mtext>中有一个小于</mtext>i](nmax(a[j],a[j+1])+1)2\sum_{i=1}^n\frac{\sum_{j=0}^n[a_j,a_{j+1}\text{中有一个小于}i]*(n-\max(a[j],a[j+1])+1)}{2}i=1n2j=0n[aj,aj+1中有一个小于i](nmax(a[j],a[j+1])+1)

加上

i=1nj=0n[aj,aj+1<mtext>都大于i</mtext>]((nmin(a[j],a[j+1])+1)(nmax(a[j],a[j+1])+1))2\sum_{i=1}^n\frac{\sum_{j=0}^n[a_j,a_{j+1}\text{都大于i}]*((n-\min(a[j],a[j+1])+1)-(n-\max(a[j],a[j+1])+1))}{2}i=1n2j=0n[aj,aj+1都大于i]((nmin(a[j],a[j+1])+1)(nmax(a[j],a[j+1])+1))

然后发现每对相邻的数只会从下面的式子掉到上面的式子一次。

于是可以用一个优先队列维护在下面的相邻数对。

O(nlogn)O(n \log n)O(nlogn)了。