新手记录
C++ 代码
#include<iostream>
using namespace std;
const int N = 100010;
int n, m;
int a[N], s[N]; //a为元素数组,s为前缀和数组
int main(){
cin >> n >> m;
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
for(int i = 1; i <= n; i++) //前缀和数组的计算,s[0]未显示初始化时由于s为全局变量,
s[i] = s[i - 1] + a[i]; //系统会默认将s所有元素赋值为0,若为局部变量则是随机值,需要显示初始化
while(m--){
int l, r;
cin >> l >> r;
cout << s[r] - s[l - 1] << endl; //直接输出该段的和,利用前缀和使复杂度为O(1)
}
return 0;
}