/ Vijos / 题库 /

元素统计[3]

元素统计[3]

时间限制:1秒  内存限制:256M


【问题描述】

  给出一个序列 \(A[1],A[2],…,A[n]\),需要你写个程序回答一些询问:\(a\ b\),询问 \(A[a]..A[b]\) 内不同元素的数目。要求在线算法实现。

【输入格式】

  第一行包含两个正整数:\(n,m\),分别表示序列元素数目和查询数目。
  第二行有 \(n\) 个整数,第 \(i\) 个整数表示 \(A[i]\)。
  再接下来的 \(m\) 行,每行两个整数 \(a,b(a≤b)\),表示一个查询。为体现在线操作,设 \(lastAns\) 为上一次查询的时候程序输出的结果,如果之前没有查询过,则 \(lastAns=0\)。则实际查询的是:\(A[x]..A[y]\) 内的不同元素的数目,其中: \(x=min(a+lastAns,n),y=min(b+lastAns,n)\)。

【输出格式】

  针对每个查询,输出其答案。

【输入输出样例】

 Input

10 5
4 2 1 5 2 6 1 2 7 3
1 4
3 6
1 10
5 9
3 7 

 Output

4
4
5
1
4

【数据说明】

  对于 \(30\%\) 的数据 \(1≤n,m≤100\)。
  对于 \(60\%\) 的数据 \(1≤n,m≤1000\)。
  对于 \(100\%\) 的数据 \(1≤n,m≤10000\),任何时候序列中的元素值不超过 1000000。

【来源】

  Mr.he

信息

ID
2587
难度
(无)
分类
数据结构 | 线段树 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者