[Ynoi2011] 初始化

题目背景

我呢…是什么时候开始存在于此的呢? 从何时开始…我成为了我呢? 仔细想想,我从出生开始似乎也没有什么记忆? 这么说明天的“我”和今天的“我”是同一个存在吗? 或者说…如何定义“我”这个存在呢? “我”这个存在真的存在吗? 如果存在的话…意义又是什么呢? 等等…如何定义“意义”呢? 意义…意义…意义…意义…意义…意义…意义…意义… ………………………………………… 他当然想不通这些问题 于是自然而然地去问大人,就像一个小孩子应该做的一样 “爸爸,活着的意义是什么啊?” “等你长大了就知道了,现在先好好学习吧” “妈妈,活着的意义是什么啊?” “小孩子想这些事干啥呢,先把成绩搞好再说” “老师,活着的意义是什么啊?” “好好学习,把成绩搞好,考上好大学,找个好工作,然后赚大钱” 原来如此啊,原来这就是意义呢 虽然这是意义,但是感觉真是无趣呢,真是可悲呢 但是,这是意义啊,不管多么的无趣,多么的可悲,既然是意义,那一定要努力 实现呢,因为这毕竟是意义啊~! 于是他开始好好学习了,由于天资还不错,所以考上了好的初中,进入了最好的 班级,似乎未来一片光明呢 实际上,他当时也确实是这么想的呢(笑 【记得配图,内容待定】 由于这是Ynoi,不是出题人拿来写傻逼的文字的地方,所以你需要做一个数据结构题:

题目描述

Mayuri 有 $n$ 颗星星,每颗星星都有一个明亮度 $A_{i}$ 。Mayuri 时常想知道一个区间 $[l,r]$ 内所有星星的明亮度的总和是多少。但是星星是会眨眼的,所以星星的明亮度是会变化的。有的时候,下标为 $y,y+x,y+2x,y+3x,\ldots,y+kx$ 的星星的明亮度会增加 $z$。保证 $y\leq x$。 Mayuri 不怎么会数学,请回答她的询问。答案要对 $10^{9}+7$ 取模。

输入输出格式

输入格式


第一行两个整数 $n$ 和 $m$,分别表示星星的数量和操作的数量。 接下来一行 $n$ 个数字 $A_{i}$,表示初始的明亮度。 接下来 $m$ 行,每行先是一个整数表示操作类型,如果为 $1$ 则是修改操作,接下来 $3$ 个整数 $x,y,z$;如果是 $2$ 则为询问操作,接下来两个整数 $l,r$。

输出格式


对于每个询问操作,输出一行表示答案。

输入输出样例

输入样例 #1

5 6
1 2 3 4 5
2 2 4
1 1 1 1
2 2 4
2 1 3
1 2 1 2
2 1 3

输出样例 #1

9
12
9
13

说明

Idea:yanQval,Solution:yanQval,Code:yanQval,Data:yanQval&nzhtl1477 对于 $10\%$ 的数据,满足 $n,m\leq 1000$。 对于另外 $10\%$ 的数据,满足 $x>1000$。 对于另外 $10\%$ 的数据,满足 $x>300$。 对于另外 $10\%$ 的数据,满足 $n,m \leq 10^5$。 对于 $100\%$ 的数据,$1\leq n,m\leq 2\times 10^5$,$1\leq y\leq x\leq n$,$1\leq l\leq r\leq n$,$0\leq A_i,z \leq 10^{9}+7$。