算法基础课笔记and题解汇总
笔记:
-
前缀和的作用:可以求区间l~r的和:
- for循环 O(n)
- 前缀和 O(n),sr−sl−1
-
前缀和如何求解
- for循环。
代码:
#include<bits/stdc++.h>
using namespace std;
int n, m, a[100010];
int main(){
scanf("%d%d", &n, &m);
for(int i = 1;i <= n; i++){
scanf("%d", &a[i]);
a[i] += a[i-1];
}
for(int i = 1;i <= m; i++){
int x, y; scanf("%d%d", &x, &y);
cout << a[y] - a[x-1]; puts("");
}
return 0;
}
我也来打卡~
#include<bits/stdc++.h> using namespace std; const int N = 1000010; int s[N]; int main() { int a,n,m; cin>>n>>m; for(int i=1;i<=n;i++) cin>>a,s[i]=s[i-1]+a; while(m--) { int l,r; cin>>l>>r; cout<<s[r]-s[l-1]<<endl; } }