- C++
一维前缀和【区间求和】模板
- 2023-12-24 20:32:40 @
前缀和是一种对于数据进行预处理的算法,可以大大减轻时间复杂度,它是一种用空间换时间的思路。
例题:
暴力源码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],n,m,l,r;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++){
cin>>l>>r;
int sum=0;
for(int j=l;j<=r;j++)sum+=a[j];
cout<<sum;
}
return 0;
}
前缀和源码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],A[N],n,m,l,r;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
A[i] = a[i]+A[i-1];
}
for(int i=1;i<=m;i++){
cin>>l>>r;
cout<<A[r]-A[l-1];
}
return 0;
}
0 条评论
目前还没有评论...