CF2009F.Firefly's Queries

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

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 次循环移位(1≤x≤n1 \leq x \leq n)为 ax,ax+1,…,an,a1,a2,…,ax−1a_x, a_{x+1}, \ldots, a_n, a_1, a_2, \ldots, a_{x-1}。注意,第 11 次移位就是原始的 aa。

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

输入格式

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

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

接下来一行包含 nn 个整数 a1,a2,...,ana_1, a_2, ..., a_n(1≤ai≤1061 \leq a_i \leq 10^6)。

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

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5,qq 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

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

输入输出样例

  • 输入#1

    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

    输出#1

    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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页