链接
题目描述
「完美序列」:一段连续的序列满足序列中的数互不相同。
A 想知道区间L,R之间最长的完美序列长度。
样例输入
9 2
2 5 4 1 2 3 6 2 4
0 8
2 6
样例输出
6
5
思路
书上说”这是个复杂的RMQ问题“
很好,RMQ
先考虑一下怎么处理这个不重复的问题
我们用 l a s t i last_i lasti记录i这个数字上次出现的位置, p r e i pre_i prei表示以i为结尾最长完美序列的起始位置
那么很容易得到 p r e pre pre的转移方式
p r e i = m a x ( p r e i − 1 , l a s t i + 1 ) pre_i = max(pre_{i-1}, last_i + 1) prei=max(prei−1,lasti+1)
同时也可以得到这段序列的长度 f i = i − p