题目链接
795. 前缀和 - AcWing题库
一些话
朴实无华的模板
切入点
接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。
给出下标求数组区间的和,符合前缀和的前提条件
流程
先求出前缀和数组,
然后o1查询即可
套路
①得到前缀和数组
s[1] = f[1];
for(int i = 2;i <= n;i++) s[i] += s[i-1] + f[i];
2输出前缀和
int l,r;
scanf("%d%d",&l,&r);
printf("%d",s[r] - s[l-1]);
puts("");
ac代码
// 8:58 ~ 9 : 05 求前缀和前遗漏了第一项的初始化 accepted // 9:05 ~ 9:08 accepted; #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; const int N = 1e5 + 10; int f[N],s[N]; int main(){ int n,m; cin >> n >> m; for(int i = 1;i <= n;i++)scanf("%d",&f[i]); s[1] = f[1]; for(int i = 2;i <= n;i++) s[i] += s[i-1] + f[i]; while(m--){ int l,r; scanf("%d%d",&l,&r); printf("%d",s[r] - s[l-1]); puts(""); } return 0; }