SP18915 ANIL_PRO - Anils Proposal

题目描述

Anil 是班级里最出色的程序员,他对女同学 Gowthami 心生爱慕。有一天,他决定向她表露心意。为了检验他的真情,Gowthami 给他提出了一个问题: 有一个长度为 $n$ 的数组,初始时数组中的所有元素均为零。接下来需要进行这两种操作: 1. 更新数组。 2. 查询数组。 对于更新操作,会给出一个范围 $[l, r]$。在此范围内的第 $k$ 个元素(包含 $l$ 和 $r$),需要累加上第 $k$ 个斐波那契数。 对于查询操作,也会提供一个范围 $[l, r]$,你要计算并返回这个范围内所有元素的和(包含 $l$ 和 $r$)。 Anil 希望你能帮他解决这个难题。

输入格式

第一行输入两个整数 $n (1 \leq n \leq 10^6)$ 和 $q (1 \leq q \leq 5 \times 10^4)$,分别表示数组大小和操作次数。接下来的 $q$ 行中,每行包含三个用空格隔开的整数。若第一个整数为 $0$,表示这是一个更新操作;若为 $1$,表示是一个查询操作。接下来的两个整数表示 $l$ 和 $r$,满足 $(1 \leq l \leq r \leq n)$。

输出格式

对于每个查询操作,输出一行,其中包含一个整数,表示该范围内元素和的结果。由于和可能非常大,结果需要取模 $10^9 + 7$ 后再输出。 **本翻译由 AI 自动生成**