噔噔蹬蹬,好习惯栏目今天就要结束了。
今天我们来聊聊数组的前缀和吧。
总是有那么些作业因为时间的限制惹的我们抓耳挠腮。
比如这个
一天,BK学长心血来潮为小朋友们准备了很多糖果发给他们。首先,他让小朋友们坐成一排,并给小朋友们编号1-n。紧接着给每个人发了ai个糖果。Lisp有m个问题,对于每个问题,给出两个整数l,r,请你告诉Lisp从第l个小朋友到第r个小朋友一共有多少个糖?
Input
第一行是一个整数T(1≤T≤100)表示有T组测试案例。对于每组案例:
第一行是两个整数n,m(1≤n,m≤1e5)表示一共有n个小朋友和m个问题。
第二行输入n个整数a1,a2,...an(1≤ai≤1e3)
接下来m行,每行两个整数l,r(1≤l≤r≤n)表示区间。
Output
对于每组测试案例,输出一个整数,表示从第l到第r个小朋友的糖果总数,行末换行。
Sample Input
2 5 3 1 2 3 4 5 1 3 2 4 1 5 5 5 1 2 3 4 5 1 1 2 2 3 3 4 4 5 5
Sample Output
6 9 15 1 2 3 4 5
这里我们如果用数列慢慢去排列,最后会到达(o)n的2次方级。
接下来我们直接写出一个前n项项和的数列。可以达到(o)n级。