【深进1.例1】求区间和
【深进1.例1】求区间和
前缀和差分模板题。
我们定义一个数列
有了前缀和之后,我们可以使用差分来进行静态的区间求和。具体而言,对于一个区间
证明的话直接展开,
参考代码(std):
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cctype>
#include <queue>
#include <vector>
using namespace std;
inline int read()
{
int x=0,f=1;char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int n,m,a[100050],s[100050];
int main()
{
n=read();
for (int i=1;i<=n;i++)
s[i]=s[i-1]+(a[i]=read());
m=read();
for (int i=1;i<=m;i++)
{
int l=read(),r=read();
cout << s[r]-s[l-1] << endl;
}
return 0;
}