话先说在前面
前缀和应用:
在时间复杂度上能比较可观的
Acwing-795-前缀和
真的是蛮有用的
#include <iostream>
using namespace std;
const int N=1e6+10;
int n,m,a[N],s[N];
int main(){
ios::sync_with_stdio(false);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[N]);
for(int i=i;i<=n;i++) s[i]=s[i-1]+a[i];
while(m--){
int l,r;
cin>>l>>r;
scanf("%d%d",&l,&r);
printf("%d",s[r]-s[l-1]);
}
return 0;
}
前缀和扩展:从一维到二维。从一维取出一个单独区间取得整体的和。
那么很容易去扩展,想到二维,给你一个矩阵,计算出大矩阵小矩阵的和。
Acwing-796. 子矩阵的和