比赛场次 358
比赛名称 数列操作练习题
比赛状态 已结束比赛成绩
开始时间 2017-03-18 19:00:00
结束时间 2017-03-19 23:59:59
开放分组 全部用户
注释介绍 数列操作按顺序做=ω=
祝愿大家颓得好成绩
题目名称 数列操作d
输入输出 segment.in/out
时间限制 3000 ms (3 s)
内存限制 512 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatarrvalue AAAAAAAAAA 2.073 s 38.66 MiB 100
Gravatar_Itachi AAAAAAAAAA 2.705 s 32.33 MiB 100

数列操作d

★★★   输入文件:segment.in   输出文件:segment.out   简单对比
时间限制:3 s   内存限制:512 MiB

【题目描述】

一个长度为$n$的序列,一开始序列数的权值都是$0$,有$m$次操作

支持两种操作:

1 L R x,给区间[L,R]内位置为pos的数加上(pos-L)*x

0 L R,查询区间[L,R]内的权值和

最终答案对$10^9+7$取模。

【输入格式】

第一行两个数n,m,表示序列长度和操作次数

接下来m行,每行描述一个操作,有如下两种情况:

1 L R x,给区间[L,R]内位置为pos的数加上$(pos-L)\times x$

0 L R,查询区间[L,R]内的权值和

【输出格式】

每一个0操作输出一个整数模$10^9+7$

【样例输入】

5 5
0 2 3
1 4 5 1
1 1 5 5
0 1 4
0 2 3

【样例输出】

0
30
15 

【提示】

对于30%的数据 $n, m<=2000$

对于100%的数据,$n, m<=300000$

保证读入的都是非负整数,所有的$x<=10000$

【来源】

感谢神犇
非常感谢神犇

非常非常感谢神犇