这题与超级钢琴类似,然而重复的不重复计算贡献.. 那么先求出数组nxt,nxt[i]表示第i个元素之后的第一个与其相等的元素的下标,不存在则nxt[i]=0 考虑取的区间左端点为1时的情况. 将读入序列a中相等元素都只保留最先出现的,其余变为0,然后求前缀和,得到数组b. 此时可以知道,设f(l,r)为取下标在[l,r]区间内数时的答案,那么f(1,r)=b[r]. 考虑取的区间左端点为2时的情况.如何维护b数组,使得新的b数组也满足f(2,r)=b[r]? 手模样例区间左端点为1和2时符合要求…