题目链接点这儿 题意是找出所有的,满足1~i中与a[i]相等的数的个数大于j~n中与a[j]相等的数这个条件的,(i, j) 1<=i<j<=n的对数。 处理出l[i],r[i],分别表示从1开始与a[i]相等的个数和从n开始与a[i]相等的个数。 然后另开一个树状数组,它的getsum(val)表示r[i] = val的i的个数。 然后i从前往后扫一遍,每次update(r[i], -1), ans+=getsum(l[i]-1); 最后输出ans 代码点这儿