CF446C.DZY Loves Fibonacci Numbers

提高+/省选-

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

In mathematical terms, the sequence F__n of Fibonacci numbers is defined by the recurrence relation

_F_1 = 1; _F_2 = 1; F__n = F__n - 1 + F__n - 2 (n > 2).

DZY loves Fibonacci numbers very much. Today DZY gives you an array consisting of n integers: _a_1, _a_2, ..., a__n. Moreover, there are m queries, each query has one of the two types:

  1. Format of the query "1 l r". In reply to the query, you need to add F__i - l + 1 to each element a__i, where l ≤ i ≤ r.
  2. Format of the query "2 l r". In reply to the query you should output the value of modulo 1000000009 (109 + 9).

Help DZY reply to all the queries.

在数学上,斐波那契数列 FnF_n 由如下递推关系定义:

F1=1;F2=1;Fn=Fn−1+Fn−2(n>2).F_1 = 1;\quad F_2 = 1;\quad F_n = F_{n-1} + F_{n-2}\quad (n > 2).

DZY 非常喜爱斐波那契数。今天 DZY 给你一个包含 nn 个整数的数组:a1,a2,…,ana_1, a_2, \dots, a_n。此外,还有 mm 个查询,每个查询为以下两种类型之一:

  1. 查询格式为 "1 l r"。对于该查询,你需要对每个下标 ii(其中 l≤i≤rl \le i \le r),将 Fi−l+1F_{i-l+1} 加到元素 aia_i 上。
  2. 查询格式为 "2 l r"。对于该查询,你需要输出 ∑i=lrai\displaystyle\sum_{i=l}^{r} a_i 对 10000000091000000009(即 109+910^9 + 9)取模的结果。

请帮助 DZY 回答所有查询。

输入格式

The first line of the input contains two integers n and m (1 ≤ n, m ≤ 300000). The second line contains n integers _a_1, _a_2, ..., a__n (1 ≤ a__i ≤ 109) — initial array a.

Then, m lines follow. A single line describes a single query in the format given in the statement. It is guaranteed that for each query inequality 1 ≤ l ≤ r ≤ n holds.

输入的第一行包含两个整数 nn 和 mm(1 ≤ n, m ≤ 3000001 ≤ n, m ≤ 300000)。第二行包含 nn 个整数 a1, a2, ..., ana_1, a_2, ..., a_n(1 ≤ ai ≤ 1091 ≤ a_i ≤ 10^9)—— 初始数组 aa。

接下来是 mm 行。每行描述一个查询,格式如题面所述。保证对每个查询均满足不等式 1 ≤ l ≤ r ≤ n1 ≤ l ≤ r ≤ n。

输出格式

For each query of the second type, print the value of the sum on a single line.

对于每个第二类查询,在单独一行中输出该和的值。

输入输出样例

  • 输入#1

    4 4
    1 2 3 4
    1 1 4
    2 1 4
    1 2 4
    2 1 3

    输出#1

    17
    12

说明/提示

After the first query, a = [2, 3, 5, 7].

For the second query, sum = 2 + 3 + 5 + 7 = 17.

After the third query, a = [2, 4, 6, 9].

For the fourth query, sum = 2 + 4 + 6 = 12.

第一次查询后,a=[2, 3, 5, 7]a = [2, 3, 5, 7]。

第二次查询时,sum=2+3+5+7=17\text{sum} = 2 + 3 + 5 + 7 = 17。

第三次查询后,a=[2, 4, 6, 9]a = [2, 4, 6, 9]。

第四次查询时,sum=2+4+6=12\text{sum} = 2 + 4 + 6 = 12。

输入解题思路,AI测评打分。不知道怎么写?

首页