#CF2009F. Firefly's Queries

    ID: 6920 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>位运算数据结构网络流数学CodeforcesCodeforces Round 971(Div4)Div4FCF2009F1700

Firefly's Queries

题目描述

Firefly 有一个长度为 nn 的数组 aa。令 cic_i 表示 aa 的第 ii 次循环移位^{\text{∗}}。她创建了一个新数组 bb,使得 b=c1+c2++cnb = c_1 + c_2 + \dots + c_n,其中 ++ 表示拼接^{\text{†}}

接着,她会给你 qq 个询问。对于每个询问,输出 bb 的从第 ll 个元素到第 rr 个元素(包括两端)组成的子数组的所有元素之和。

^{\text{∗}} 数组 aa 的第 xx 次循环移位(1xn1 \leq x \leq n)为 $a_x, a_{x+1}, \ldots, a_n, a_1, a_2, \ldots, a_{x-1}$。注意,第 11 次移位就是原始的 aa

^{\text{†}} 两个长度为 nn 的数组 ppqq 的拼接(即 p+qp + q)为 p1,p2,...,pn,q1,q2,...,qnp_1, p_2, ..., p_n, q_1, q_2, ..., q_n

输入格式

第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnqq1n,q21051 \leq n, q \leq 2 \cdot 10^5),分别表示数组的长度和询问的数量。

接下来一行包含 nn 个整数 a1,a2,...,ana_1, a_2, ..., a_n1ai1061 \leq a_i \leq 10^6)。

接下来的 qq 行,每行包含两个整数 llrr1lrn21 \leq l \leq r \leq n^2),表示询问的区间左右端点。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5qq 的总和不超过 21052 \cdot 10^5

输出格式

对于每个询问,输出一个答案,每行一个。

样例

5
3 3
1 2 3
1 9
3 5
8 8
5 5
4 8 3 2 4
1 14
3 7
7 10
2 11
1 25
1 1
6
1 1
5 7
3 1 6 10 4
3 21
6 17
2 2
1 5
1 14
9 15
12 13
5 3
4 9 10 10 1
20 25
3 11
20 22
18
8
1
55
20
13
41
105
6
96
62
1
24
71
31
14
44
65
15

样例说明

对于第一个测试用例,b=[1,2,3,2,3,1,3,1,2]b = [1, 2, 3, 2, 3, 1, 3, 1, 2]

由 ChatGPT 4.1 翻译

来源

Codeforces 2009F,英文题名 Firefly's Queries。