#P16758. [GKS 2020 #C] Candies
[GKS 2020 #C] Candies
题目描述
Carl 有 颗糖果组成的数组。数组的第 个元素(下标从 开始)为 ,表示第 颗糖果的甜度值。他想执行一系列 个操作。操作有两种类型:
- 更新数组中某颗糖果的甜度值。
- 查询某个子数组的甜度分数。
从下标 到 的子数组的甜度分数定义为: $A_l \times 1 - A_{l+1} \times 2 + A_{l+2} \times 3 - A_{l+3} \times 4 + A_{l+4} \times 5 \dots$
形式化地,甜度分数为 。
例如:
- 的甜度分数为 。
- 的甜度分数为 $40 \times 1 - 30 \times 2 + 20 \times 3 - 10 \times 4 = 0$。
- 的甜度分数为 。
Carl 想求出所有查询操作的甜度分数之和。如果没有查询操作,则和为 。你能帮助 Carl 求出这个和吗?
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。每个测试用例的第一行包含 和 。第二行包含 个整数描述数组,其中第 个整数为 。接下来的 行中的第 行描述第 个操作。每行以一个字符开头,表示操作类型(U 表示更新,Q 表示查询)。
- 对于更新操作,后面跟两个整数 和 ,表示将数组的第 个元素修改为 。
- 对于查询操作,后面跟两个整数 和 ,表示查询从第 个元素到第 个元素(包含两端)的子数组的甜度分数。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是所有查询操作的甜度分数之和。
2
5 4
1 3 9 8 2
Q 2 4
Q 5 5
U 2 10
Q 1 2
3 3
4 5 5
U 1 2
U 1 7
Q 1 2
Case #1: -8
Case #2: -3
提示
在样例 #1 中:
- 第一个查询询问子数组 的甜度分数,计算为 。
- 第二个查询询问子数组 的甜度分数,计算为 。
- 第三个查询询问子数组 的甜度分数,计算为 。
因此最终输出为 。
在样例 #2 中:
- 第一个(也是唯一一个)查询询问子数组 的甜度分数,计算为 。
因此最终输出为 。
限制条件
。
对于所有 ,。
最多 个测试用例满足 且 。
其余测试用例满足 且 。
如果第 个操作为更新操作,则 且 。
如果第 个操作为查询操作,则 。
测试集 1
最多有 个更新操作。
测试集 2
无特殊限制。
翻译由 DeepSeek V4 Pro 完成