-
前缀和定义:原数组:a[1] ·…,a[n]前缀和Si为数组的前i项和 ;前缀和:S[i] = a[1] + …a[i]
-
注意:前缀和的下标一定要从1开始,避免进行下标的转换。s[0]=0
-
前缀和的作用:快速求出元素组中某段区间的和
-
一维数组求解前缀和(Si)①for循环求出每个S[i](将 S[0] 定义为0,避免下标的转换)②求[l, r)]中的和,即为 S[r]- S[I-1]
#include<iostream> using namespace std; const int N=100010; int n,m; int a[N],s[N];//a[N]用来储存长度为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; }
AcWing 795.前缀和(一维)
于 2024-11-14 16:38:13 首次发布