快乐的一天从AC开始 | 20210702 | P4113

题目链接

AC代码

其实就是区间内出现次数超过两次的颜色数量。

发现没有强制在线,想到莫队,但是看了眼数据范围,2e6的(O(n sqrt n))估计够呛。

然后换一种离线方法,试着将询问挂到右端点。此时,从左至右遍历数组,对于颜色(c),记录上上次出现的位置以及上一次出现的位置,分别记为(lst1_c)以及(lst2_c),那么,对于右端点为(r)的询问,其答案就等于遍历至(r)时,(lst1_c ge l)的颜色数量。如果维护好(lst1),借助树状数组(单点加,区间求和)就可以在(O(n log n))内解决这题。

bonus:有没有在线的做法?

原文地址:https://www.cnblogs.com/zengzk/p/14962287.html