题目
解释
- 一维数组a[n]中有a[1],a[2]……
- 用数组s[n]来存放a[n]的前n项和
- 则查询[l,r]的和
- 时间复杂度由o(n)降到0(1)
代码段
#include<iostream>
using namespace std;
int n,m;
const int N=1e5+10;
int a[N],s[N];
int main()
{
cin>>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;
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;
}
return 0;
}