前缀和

发布时间 2023-08-04 21:26:33作者: 宠柳娇花

前缀和就是一个数组的前n个数的和,问题一般问从L到R的区间的和,就用前R个数的和减去前L-1个数的和,得到L到R区间的求和

代码:

 1 #include <iostream>
 2 using namespace std;
 3 const int N=100010;
 4 int n,m;
 5 int a[N],s[N];
 6 int main()
 7 {
 8     scanf("%d%d",&n,&m);
 9     for(int i=1;i<=n;i++)
10     {
11         scanf("%d",&a[i]);
12     }
13     for(int i=1;i<=n;i++)
14     {
15         s[i]=s[i-1]+a[i];
16     }
17     while(m--)
18     {
19         int l,r;
20         scanf("%d%d",&l,&r);
21         printf("%d\n",s[r]-s[l-1]);
22     }
23     return 0;
24 }