求区间和
题目描述:给定 n 个正整数组成的数列 a1,a2,⋯,an 和 m 个区间 [li,ri],分别求这 m 个区间的区间和。
#include <bits/stdc++.h>
using namespace std;
int s[100001], a[100001];
int n, m;
int main()
{
int l, r, ans;
scanf("%d", &n);
a[0] = 0;
s[0] = 0;
for (int i = 1; i <= n; i++)
{
scanf("%d", a + i);
s[i] = s[i - 1] + a[i];
}
scanf("%d", &m);
while (m--)
{
scanf("%d%d", &l, &r);
ans = s[r] - s[l - 1];
printf("%d\n", ans);
}
return 0;
}简单的模板题。其实数组a完全可以不使用,直接使用前缀和数组即可。如果需要原数组,可以直接做差分。
