-
poj 3368 题目链接 题意:给出n个非减的数a[i],求区间[l,r]中出现次数最多的数的出现的次数。 思路:由于数列非减,那么相等的数一定相邻。很容易系哪个到构造另一个数组f[i],表示从当前位置向左边延伸最多延伸几个相等的数。 f[i] = f[i-1] + 1 (iff a[i]==a[i-1]) 然后查询的时候。 如果直接用ST算法查询rmq的话。。。 可能产生错误结果,原因是f[i]是从左边1到i这段连续区间里当前数出现的次数。 但是查询区间不一定是从1开始,所以查询区间内的第一段连续相等的数可能不完整。。。想了半天。。最后看了题解,发现是这部分暴力来搞。但是如果所有数列中所有数都相等,这样的复杂度就达到 …
Read More