luogu#P16389. [IATI 2024] Five

[IATI 2024] Five

题目描述

由于不可预见的情况,本题并非第五题。

一家名为“Ko & co”的民调机构最近的一项调查发现,没有人喜欢数字 1144。因此我们将关注下一个数字 55,并希望它不会重蹈其前辈的悲惨命运。

考虑如下定义在正负整数下标上的序列:

  • x0=0x_0 = 0
  • x1=1x_1 = 1
  • x2=2x_2 = 2
  • x3=3x_3 = 3
  • x4=4x_4 = 4
  • 对于任意整数 kk,有 $x_{k+5} = 5 \times x_{k+4} + 4 \times x_{k+3} + 3 \times x_{k+2} + 2 \times x_{k+1} + 1 \times x_{k}$。

注意,该等式唯一确定了所有正负下标的值(例如 x5=40x_5 = 40x6=230x_6 = 230\dots 以及 x1=22x_{-1} = -22x2=33x_{-2} = 33\dots)。

给定一个包含 nn 个数的数组 a1,a2,,ana_1, a_2, \dots, a_n。请编写一个程序 five\texttt{five},支持以下 22 种操作:

  • 查询:给定参数 l,rl, r,求 $x_{a_{l}} + x_{a_{l + 1}} + ... + x_{a_{r}} = \sum_{i = l}^{r} x_{a_{i}}$。由于答案可能非常大,请输出其对 M=108+543M = 10 ^ 8 + 543 取模的结果。
  • 更新:给定参数 l,r,valuel, r, value,则对于每个 lirl \leq i \leq raia_i 的新值变为 ai+valuea_i + value

输入格式

第一行包含两个整数 nnqq

接下来一行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n。接下来的 qq 行,每行包含三个整数 type,l,rtype, l, r

type=1type = 1,则该行为一个查询

type=2type = 2,则该行为一个更新,并额外包含一个整数 valuevalue

输出格式

对于每个查询,在新的一行输出该查询的答案。

1 5
1
1 1 1
2 1 1 -2
1 1 1
2 1 1 8
1 1 1
1
100000521
1330

提示

样例解释

初始时 a1=1a_1 = 1xa1=1x_{a_{1}} = 1。第一次更新a1=1a_1 = -1xa1=22x_{a_{1}} = -22。第二次更新a1=7a_1 = 7xa1=1330x_{a_{1}} = 1330

数据范围

  • 1n1000001 \leq n \leq 100\,000
  • 1q2000001 \leq q \leq 200\,000
  • 1lrn1 \leq l \leq r \leq n
  • M<ai,value<M-M < a_i, value < M

子任务

子任务 分数 附加约束
11 55 0ai1060 \leq a_i \leq 10^6 且仅有查询操作
22 1919 0ai,value0 \leq a_i, valuel=rl = r
33 0ai,value0 \leq a_i, valueq20000q \leq 20\,000
44 q20000q \leq 20\,000
55 q100000q \leq 100\,000
66

只有当某个子任务的所有测试数据及其所依赖子任务的全部测试数据均成功通过时,该子任务的分数才会被给出。

翻译由 DeepSeek V4 Pro 完成