CF2094G Chimpanzini Bananini

题目描述

Chimpanzini Bananini 正站在一场重大战斗的边缘——这场战斗注定会带来终结。 对于任意长度为 $m$ 的数组 $b$,我们定义该数组的"炫酷值"为 $\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. 对数组进行循环移位。即数组 $[a_1, a_2, \ldots, a_n]$ 变为 $[a_n, a_1, a_2, \ldots, a_{n-1}]$。 2. 反转整个数组。即数组 $[a_1, a_2, \ldots, a_n]$ 变为 $[a_n, a_{n-1}, \ldots, a_1]$。 3. 在数组末尾追加一个元素。即数组 $[a_1, a_2, \ldots, a_n]$ 在追加 $k$ 后变为 $[a_1, a_2, \ldots, a_n, k]$。 每次操作后,你需要计算当前数组的炫酷值。 注意所有操作都是持久化的。这意味着每个操作都会修改数组,后续操作都应基于前一次操作后的数组状态进行。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^4$)——测试用例的数量。 输入的第一行包含一个整数 $q$($1 \leq q \leq 2 \cdot 10^5$)——对数组执行的操作次数。 接下来的 $q$ 行首先包含一个整数 $s$($1 \leq s \leq 3$)——操作类型: - 如果 $s=1$,则执行循环移位操作。 - 如果 $s=2$,则执行反转操作。 - 如果 $s=3$,则该行还会包含一个额外的整数 $k$($1 \leq k \leq 10^6$),表示要追加到数组末尾的元素。 保证所有测试用例的 $q$ 之和不超过 $2 \cdot 10^5$。此外,保证每个测试用例的第一个操作都是 $s=3$ 类型的操作。

输出格式

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

说明/提示

数组前六次操作后的状态: - $[1]$ - $[1, 2]$ - $[1, 2, 3]$ - $[3, 1, 2]$ - $[3, 1, 2, 4]$ - $[4, 2, 1, 3]$ 翻译由 DeepSeek V3 完成