这里解释一下,前缀和就是数列求和S
差分就是,两个求和S想减得到中间那段S
#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N],s[N];
int n,m;
int main(){
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];
while(m--){
int l,r;
scanf("%d %d",&l,&r);
cout<<s[r]-s[l-1]<<endl;
}
return 0;
}