CF316E2 Summer Homework

题目描述

三岁时,Smart Beaver 已经掌握了所有的算术运算,这个暑假老师给他布置了如下作业: 给定一个整数序列 $a_{1},a_{2},...,a_{n}$。你需要对其进行 $m$ 次连续操作,操作类型如下: 1. 给定数字 $x_{i}$ 和 $v_{i}$,将 $a_{x_{i}}$ 的值赋为 $v_{i}$。 2. 给定数字 $l_{i}$ 和 $r_{i}$,你需要计算如下和:$\sum_{j=l_{i}}^{r_{i}} a_{j} f_{j-l_{i}}$,其中 $f_{0}=f_{1}=1$,对于 $i\geq 2$,有 $f_{i}=f_{i-1}+f_{i-2}$。 3. 给定三个数字 $l_{i}$、$r_{i}$、$d_{i}$,将区间 $[l_{i}, r_{i}]$ 内的每个 $a_{x}$ 增加 $d_{i}$。 Smart Beaver 计划去加拿大大湖区旅行,所以他请你帮他解决这个问题。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 2 \cdot 10^{5}$),分别表示序列的长度和操作次数。第二行包含 $n$ 个整数 $a_{1}, a_{2}, ..., a_{n}$($0 \leq a_{i} \leq 10^{5}$)。接下来 $m$ 行,每行描述一个操作。每行以一个整数 $t_{i}$($1 \leq t_{i} \leq 3$)开头,表示操作类型: - 如果 $t_{i}=1$,接下来两个整数 $x_{i}$、$v_{i}$($1 \leq x_{i} \leq n, 0 \leq v_{i} \leq 10^{5}$); - 如果 $t_{i}=2$,接下来两个整数 $l_{i}$、$r_{i}$($1 \leq l_{i} \leq r_{i} \leq n$); - 如果 $t_{i}=3$,接下来三个整数 $l_{i}$、$r_{i}$、$d_{i}$($1 \leq l_{i} \leq r_{i} \leq n, 0 \leq d_{i} \leq 10^{5}$)。 对于获得 $30$ 分的输入限制(子任务 E1): - 保证 $n \leq 100$,$m \leq 10000$,且不会有第 $3$ 种类型的操作。 对于获得 $70$ 分的输入限制(子任务 E1+E2): - 保证只会有第 $1$ 和第 $2$ 种类型的操作。 对于获得 $100$ 分的输入限制(子任务 E1+E2+E3): - 无额外限制。

输出格式

对于每个查询操作(类型 $2$),输出计算得到的和对 $1000000000$($10^{9}$)取模的结果。

说明/提示

由 ChatGPT 4.1 翻译