对于这道题,先解释一下一段数组的权值 从伪代码看,就是Σ_{i=l}^{r}dis(l,i),其中dis(l,i)代表s数组按下标(从一开始)从l到i多少个不同的元素,这就是一个数组的权值计算公式 但是,我们还需要计算所有子数组的权值,因此我们需要得到所有的子数组 最终答案也就是ans=Σ_{l=1}^{n} Σ_{r=l}^{n} Σ_{i=l}^{r} dis(l,i) 但是这个用到了三重循环,非常恐怖的复杂度,因此我们必须进行优化,至少要到n log n才行,但是这个可以优化到n 先看内层的两个循环,此时l看做常数,那么dis(l,i)就只与i有关了,对于某个dis(l,i),我们不难发...