【题目】来源:xmuoj
【分析】
这题需要求的是数列从第l项到第r项的和;可以直接用循环从a[l]加到a[r];而前缀和算法是利用数列的Sn性质进行计算的,即S[l]-S[r]=a[l]+....+a[r];所以我们先把前n项求和后再计算即可
【核心代码】
#include <iostream>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
int a[n],S[n];
for(int i=1;i<=n;i++){
cin>>a[i];
S[i]=S[i-1]+a[i];//建立前n项的数组
}
for(int i=1;i<=k;i++){
int l,r;
cin>>l>>r;
cout<<S[r]-S[l-1]<<endl;//需要包括a[l]这一项,所以要减掉S[l-1],而不是S[l]
}
return 0;
}