传统题 100ms 256MiB

搬桌子

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

最近,肖老师为了锻炼 HGNUACMHGNU ACM 实验室成员的身体,想出了让他们搬桌子的点子。在学校各处有很多储藏室,每一个储藏室都有一些桌子。肖老师为了“折磨”他们,他给了一个区间 [l,r][l, r],要求把他给定的区间里的所有储藏室的桌子都搬到另一个储藏室。将桌子从一个储藏室搬到另一个储藏室,所花的代价为 桌子数量×储藏室之间的距离桌子数量 \times 储藏室之间的距离。为了提前安排好搬桌子的人数,他需要你帮忙计算搬桌子的总代价。

输入格式

第一行输入两个数 n(2n2×105)n(2 \le n \le 2 \times 10^5)t(1m2×105)t(1 \le m \le 2 \times 10^5)tt 表示询问的次数。

第二行输入一个长度为 n1n-1 的数组 dist(0dist[i]2×109)dist(0 \le dist[i] \le 2 \times 10^9)dist[i]dist[i] 表示第 ii 个储藏室到第 i+1i+1 个储藏室的距离。

第三行输入一个长度为 nn 的数组 table(0table[i]2×109)table(0 \le table[i] \le 2 \times 10^9)table[i]table[i] 表示第 ii 个储藏室有多少个桌子。

接下来 tt 行,每行输入三个数 p,l,rp, l, r,表示要查询把区间 [l,r][l,r] 里的所有储藏室的桌子都搬到储藏室 pp 的总代价。

输出格式

输出 tt 行,每行输出一个数表示总代价,结果要对 109+710^9 + 7 取模(就是取余操作 % )。


// CPP
const int mod=1e9+7;

result = answer % mod;

// 或者

result %= mod;

样例

5 5
2 3 4 5
1 2 3 4 5
1 1 5
3 1 5
2 3 3
3 3 3
1 5 5
125
72
9
0
70

HGNU ACM Training Round #3 Good Bye 2021: Hello 2022

未参加
状态
已结束
规则
ACM/ICPC
题目
12
开始于
2022-1-4 12:00
结束于
2022-1-4 17:00
持续时间
5 小时
主持人
参赛人数
29