CF2094G.Chimpanzini Bananini
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Chimpanzini Bananini 正站在一场重大战斗的边缘——这场战斗注定会带来终结。
对于任意长度为 m 的数组 b,我们定义该数组的"炫酷值"为 ∑i=1mbi⋅i=b1⋅1+b2⋅2+b3⋅3+…+bm⋅m。
Chimpanzini Bananini 给你一个空数组。你可以对它进行三种类型的操作:
- 对数组进行循环移位。即数组 [a1,a2,…,an] 变为 [an,a1,a2,…,an−1]。
- 反转整个数组。即数组 [a1,a2,…,an] 变为 [an,an−1,…,a1]。
- 在数组末尾追加一个元素。即数组 [a1,a2,…,an] 在追加 k 后变为 [a1,a2,…,an,k]。
每次操作后,你需要计算当前数组的炫酷值。
注意所有操作都是持久化的。这意味着每个操作都会修改数组,后续操作都应基于前一次操作后的数组状态进行。
输入格式
第一行包含一个整数 t(1≤t≤104)——测试用例的数量。
输入的第一行包含一个整数 q(1≤q≤2⋅105)——对数组执行的操作次数。
接下来的 q 行首先包含一个整数 s(1≤s≤3)——操作类型:
- 如果 s=1,则执行循环移位操作。
- 如果 s=2,则执行反转操作。
- 如果 s=3,则该行还会包含一个额外的整数 k(1≤k≤106),表示要追加到数组末尾的元素。
保证所有测试用例的 q 之和不超过 2⋅105。此外,保证每个测试用例的第一个操作都是 s=3 类型的操作。
输出格式
对于每个测试用例,输出 q 行,每行输出每次操作后数组的炫酷值。
输入输出样例
输入#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,2]
- [1,2,3]
- [3,1,2]
- [3,1,2,4]
- [4,2,1,3]
翻译由 DeepSeek V3 完成
输入解题思路,AI测评打分。不知道怎么写?