$∀i∈[0,n)$求有多少对后缀满足$Len(lcp)\ge i$,以及满足条件的两个后缀的权值乘积的最大值
考虑从小到大递增增加。
后缀数组里,如果$Len(lcp)\ge x$,会把$he[i]\geq x$都包含进来。即对数就是各个集合的$\sum C_{size}^2$,最大就是每个集合中最大$\times$此大。
显然随着$x$,减小越来越多$he[i]$,会连接集合,用并茶集维护即可。
- 不用维护最大次小,只需要在合并的时候$mx[x]\times mx[y]$即可。
- 考虑负值维护最大值和最小值即可。
代码
1 |
|