CF2094G.Chimpanzini Bananini

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Chimpanzini Bananini 正站在一场重大战斗的边缘——这场战斗注定会带来终结。

对于任意长度为 mm 的数组 bb,我们定义该数组的"炫酷值"为 ∑i=1mbi⋅i=b1⋅1+b2⋅2+b3⋅3+…+bm⋅m\sum_{i=1}^m b_i \cdot i = b_1 \cdot 1 + b_2 \cdot 2 + b_3 \cdot 3 + \ldots + b_m \cdot m。

Chimpanzini Bananini 给你一个空数组。你可以对它进行三种类型的操作:

  1. 对数组进行循环移位。即数组 [a1,a2,…,an][a_1, a_2, \ldots, a_n] 变为 [an,a1,a2,…,an−1][a_n, a_1, a_2, \ldots, a_{n-1}]。
  2. 反转整个数组。即数组 [a1,a2,…,an][a_1, a_2, \ldots, a_n] 变为 [an,an−1,…,a1][a_n, a_{n-1}, \ldots, a_1]。
  3. 在数组末尾追加一个元素。即数组 [a1,a2,…,an][a_1, a_2, \ldots, a_n] 在追加 kk 后变为 [a1,a2,…,an,k][a_1, a_2, \ldots, a_n, k]。

每次操作后,你需要计算当前数组的炫酷值。

注意所有操作都是持久化的。这意味着每个操作都会修改数组,后续操作都应基于前一次操作后的数组状态进行。

输入格式

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

输入的第一行包含一个整数 qq(1≤q≤2⋅1051 \leq q \leq 2 \cdot 10^5)——对数组执行的操作次数。

接下来的 qq 行首先包含一个整数 ss(1≤s≤31 \leq s \leq 3)——操作类型:

  • 如果 s=1s=1,则执行循环移位操作。
  • 如果 s=2s=2,则执行反转操作。
  • 如果 s=3s=3,则该行还会包含一个额外的整数 kk(1≤k≤1061 \leq k \leq 10^6),表示要追加到数组末尾的元素。

保证所有测试用例的 qq 之和不超过 2⋅1052 \cdot 10^5。此外,保证每个测试用例的第一个操作都是 s=3s=3 类型的操作。

输出格式

对于每个测试用例,输出 qq 行,每行输出每次操作后数组的炫酷值。

输入输出样例

  • 输入#1

    1
    13
    3 1
    3 2
    3 3
    1
    3 4
    2
    3 5
    1
    3 6
    2
    3 7
    2
    1

    输出#1

    1
    5
    14
    11
    27
    23
    48
    38
    74
    73
    122
    102
    88

说明/提示

数组前六次操作后的状态:

  • [1][1]
  • [1,2][1, 2]
  • [1,2,3][1, 2, 3]
  • [3,1,2][3, 1, 2]
  • [3,1,2,4][3, 1, 2, 4]
  • [4,2,1,3][4, 2, 1, 3]

翻译由 DeepSeek V3 完成

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

首页