CFCF2153F.Odd Queries on Odd Array

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

一个长度为 mm 的数组 bb 被称为可爱数组(cute),如果不存在四个下标 1i<j<k<lm1\le i < j < k < l \le m,使得 bibjb_i\neq b_jbi=bkb_i = b_k,并且 bj=blb_j = b_l

我们定义长度为 mm 的数组 bb 的美丽值(beauty)为所有在 bb 中出现奇数次的不同数的和。形式化地,设 cnt(b,x)\operatorname{cnt}(b, x) 表示 xx 在数组 bb 中出现的次数。那么,美丽值为

xZcnt(b,x) 为奇数x.\sum\limits_{\substack{x\in \mathbb{Z}\\\operatorname{cnt}(b, x)\text{ 为奇数}}} x.

给定一个长度为 nn 的可爱数组 aa,你需要在线回答 qq 个查询。每个查询包含两个整数 llrr1lrn1\le l \le r \le n),你需要计算子数组 alra_{l\ldots r} 的美丽值^{\text{∗}}。注意,查询是经过编码的,需要在得到前一个查询答案后才能解码下一个查询。

^{\text{∗}} 子数组 alra_{l \ldots r} 指的是数组 aa 从第 ll 个元素到第 rr 个元素的连续区间,即 [al,al+1,,ar][a_l, a_{l+1}, \ldots, a_r]

输入格式

每组测试数据包含多个测试用例。第一行包含测试用例个数 tt1t1041 \le t \le 10^4)。每个测试用例的描述如下:

每个测试用例第一行包含两个整数 nnqq1n,q51051\le n,q\le 5\cdot 10^5),分别表示数组 aa 的长度和查询的个数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ain1\le a_i\le n),为可爱数组 aa 的元素。

接下来 qq 行,每行包含两个整数 xix'_iyiy'_i1xi,yin1\le x'_i, y'_i\le n),表示查询的区间端点(已编码)。

ansi\text{ans}_i 为第 ii 个查询的答案,ans0=0\text{ans}_0 = 0。则 xi=((xi1+ansi1)modn)+1x_i = ((x'_i - 1 + \text{ans}_{i - 1}) \bmod n) + 1yi=((yi1+ansi1)modn)+1y_i = ((y'_i - 1 + \text{ans}_{i - 1}) \bmod n) + 1。查询子数组的端点 lil_irir_i 解码为 li=min(xi,yi)l_i = \min(x_i, y_i)ri=max(xi,yi)r_i = \max(x_i, y_i)

保证给定的数组 aa 满足可爱数组的条件。

保证所有测试用例的 n\sum nq\sum q 不超过 51055\cdot 10^5

输出格式

每个测试用例输出 qq 个整数,分别为每个查询的答案。

输入输出样例

  • 输入#1

    3
    11 4
    1 1 2 2 3 3 3 2 2 1 1
    7 10
    5 11
    8 6
    2 8
    6 2
    1 3 2 3 4 3
    1 6
    1 4
    3 6
    3 3 3
    1 1
    1 2
    3 1
    2 2
    2 3
    3 3

    输出#1

    4 5 4 0 
    10 6 
    3 0 3 3 0 3

说明/提示

在第一个测试用例中,查询如下:

  • x1=((71+0)mod11)+1=7,y1=((101+0)mod11)+1=10 x_1 = ((7 - 1 + 0) \bmod 11) + 1 = 7,\quad y_1 = ((10 - 1 + 0) \bmod 11) + 1 = 10

    l1=min(7,10)=7,r1=max(7,10)=10 l_1 = \min(7, 10) = 7,\quad r_1 = \max(7, 10) = 10

    因此,查询的子数组为 a710=[3,2,2,1]a_{7\ldots 10} = [3, 2, 2, 1]3311 各出现 1 次(奇数),22 出现 2 次(偶数)。所以美丽值为 3+1=43 + 1 = 4

  • x2=((51+4)mod11)+1=9,y2=((111+4)mod11)+1=4 x_2 = ((5 - 1 + 4) \bmod 11) + 1 = 9, \quad y_2 = ((11 - 1 + 4) \bmod 11) + 1 = 4

    l2=min(9,4)=4,r2=max(9,4)=9 l_2 = \min(9, 4) = 4,\quad r_2 = \max(9, 4) = 9

    查询的子数组为 a49=[2,3,3,3,2,2]a_{4\ldots 9} = [2, 3, 3, 3, 2, 2]2233 各出现 3 次(奇数)。美丽值为 2+3=52 + 3 = 5

  • x3=((81+5)mod11)+1=2,y3=((61+5)mod11)+1=11 x_3 = ((8 - 1 + 5) \bmod 11) + 1 = 2,\quad y_3 = ((6 - 1 + 5) \bmod 11) + 1 = 11

    l3=min(2,11)=2,r3=max(2,11)=11 l_3 = \min(2, 11) = 2,\quad r_3 = \max(2, 11) = 11

    查询的子数组为 a211=[1,2,2,3,3,3,2,2,1,1]a_{2\ldots 11} = [1, 2, 2, 3, 3, 3, 2, 2, 1, 1]1133 各出现 3 次(奇数),22 出现 4 次(偶数)。美丽值为 1+3=41 + 3 = 4

  • x4=((21+4)mod11)+1=6,y4=((81+4)mod11)+1=1 x_4 = ((2 - 1 + 4) \bmod 11) + 1 = 6,\quad y_4 = ((8 - 1 + 4) \bmod 11) + 1 = 1

    l4=min(6,1)=1,r4=max(6,1)=6 l_4 = \min(6, 1) = 1,\quad r_4 = \max(6, 1) = 6

    查询的子数组为 a16=[1,1,2,2,3,3]a_{1\ldots 6} = [1, 1, 2, 2, 3, 3]112233 都出现了 2 次(偶数)。美丽值为 00

在第二个测试用例中,查询如下:

  • x1=((11+0)mod6)+1=1,y1=((61+0)mod6)+1=6 x_1 = ((1 - 1 + 0) \bmod 6) + 1 = 1,\quad y_1 = ((6 - 1 + 0) \bmod 6) + 1 = 6

    l1=min(1,6)=1,r1=max(1,6)=6 l_1 = \min(1, 6) = 1,\quad r_1 = \max(1, 6) = 6

    查询子数组为 a16=[1,3,2,3,4,3]a_{1\ldots 6} = [1, 3, 2, 3, 4, 3]112244 各出现 1 次(奇数),33 出现 3 次(奇数)。美丽值为 1+2+3+4=101 + 2 + 3 + 4 = 10

  • x2=((11+10)mod6)+1=5,y2=((41+10)mod6)+1=2 x_2 = ((1 - 1 + 10) \bmod 6) + 1 = 5,\quad y_2 = ((4 - 1 + 10) \bmod 6) + 1 = 2

    l2=min(5,2)=2,r2=max(5,2)=5 l_2 = \min(5, 2) = 2,\quad r_2 = \max(5, 2) = 5

    查询子数组为 a25=[3,2,3,4]a_{2\ldots 5} = [3, 2, 3, 4]2244 各出现 1 次(奇数),33 出现 2 次(偶数)。美丽值为 2+4=62 + 4 = 6

在第三个测试用例中,数组 aa 的所有元素均为 33

  • 对于任意长度为奇数的子数组,33 出现奇数次,因此美丽值为 33
  • 对于任意长度为偶数的子数组,33 出现偶数次,因此美丽值为 00
首页