思路:两个数组,一个数组用来保存数据,一个数组来求对应项的和
前缀和=S[r]-s[r-1]
空出来下标0
从1开始
方便表示,防止越界
c++代码实现:
#include<iostream>
using namespace std;
const int N=1000000;
int a[N],s[N];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
s[0]=0;
for(int i=1;i<=n;i++){
s[i]=s[i-1]+a[i];
}
int l,r;
while(m--){
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;
}
}