#D0648. [DAY25]区间不同元素个数

[DAY25]区间不同元素个数

题目描述

33DAI 拿到了一个长度为 nn 的序列 a1ana_1\sim a_n

他有 QQ 个问题,第 ii 个问题会给你一个区间 [li,ri][l_i,r_i],你需要告诉他这个区间有多少个不同的数。

输入格式

第一行两个数 n,Qn,Q

第二行为空格隔开的 nn 个数 a1ana_1\sim a_n

接下来 QQ 行,每行为空格隔开的两个数 x,yx,y,可以通过 x,yx,y 算出第 ii 个询问 [li,ri][l_i,r_i],计算方法如下:

分别计算

  • xx=((x×ansi1)modn)+1xx = ((x\times ans_{i-1}) \bmod n) + 1
  • yy=((y×ansi1)modn)+1yy = ((y\times ans_{i-1}) \bmod n) + 1

其中 ansians_i 表示第 ii 个问题的答案,ans0=1ans_0 = 1

则第 ii 个问题的 li,ril_i,r_i 分别为:

  • li=min(xx,yy)l_i = \min(xx,yy)
  • ri=max(xx,yy)r_i = \max(xx,yy)

输出格式

输出 QQ 行,第 ii 行为第 ii 个问题的答案。

10 3
1 2 3 4 5 1 2 3 4 5
9 10
1 5
3 6
5
1
4
  • 对于 x=9,y=10,ansi1=1x=9,y=10,ans_{i-1}=1 计算出:$xx=9\times 1\bmod 10+1 = 10, yy = 10\times 1 \bmod 10 +1 = 1$
    • 第一个问题为 [1,10][1,10]ans1=5ans_1=5
  • 对于 x=1,y=5,ansi1=5x=1,y=5,ans_{i-1}=5 计算出:$xx=1\times 5\bmod 10+1 = 6, yy = 5\times 5 \bmod 10 +1 = 6$
    • 第二个问题为 [6,6][6,6]ans2=1ans_2=1
  • 对于 x=3,y=6,ansi1=1x=3,y=6,ans_{i-1}=1 计算出:$xx=3\times 1\bmod 10+1 = 4, yy = 6\times 1 \bmod 10 +1 = 7$
    • 第三个问题为 [4,7][4,7]ans3=4ans_3=4

数据规模与约定

对于 100%100\% 的数据,1n1051 \le n \le 10^51Q1001\le Q\le 1001ai1091\le a_i\le 10^9

  • 子任务 1(30 分):保证所有 aia_i 各不相同。
  • 子任务 2(30 分):保证 n100n\le 100
  • 子任务 3(40 分):没有特殊限制。