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 完成