题目大意:给出一个非降序排列的整数数组a[1...n],对于一系列询问(i, j),求出ai到aj中出现最多的次数。
由于数组是非降序的,可以把数组进行游程编码(Run Length Encoding, RLE)。什么是游程编码呢,比如序列1,1,1,2,2,3,可以编码成(1,3),(2,2),(3,1),其中(a,b)表示有b个连续的a。然后就是RMQ问题了,可以使用Sqare Table算法,预处理时间为O(nlogn),每个查询只需O(1)。
题目大意:给出一个非降序排列的整数数组a[1...n],对于一系列询问(i, j),求出ai到aj中出现最多的次数。
由于数组是非降序的,可以把数组进行游程编码(Run Length Encoding, RLE)。什么是游程编码呢,比如序列1,1,1,2,2,3,可以编码成(1,3),(2,2),(3,1),其中(a,b)表示有b个连续的a。然后就是RMQ问题了,可以使用Sqare Table算法,预处理时间为O(nlogn),每个查询只需O(1)。