首先说明一下这个方法是我口胡的,不一定正确。(大佬可以检查下正确性)
注意到一个区间最多只有 n\sqrt{n}n 中热度值,所以可以对整块预处理 fi,j,kf_{i,j,k}fi,j,k 表示第 iii 个块到第 jjj 个块的第 kkk 小种的热度值有多少个,顺序的话可以用双向链表维护。对于散块维护从 iii 位置到第 jjj 个块有多少相同的股票且对应的是第几种。然后我们把散块所对应的链表建出来,再加上新的股票。最后将整块和散块归并排序求出第 kkk 小。