预处理时间复杂度:
求前缀和时间复杂度:
用空间来换取时间
// 前缀和
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int n, m;
int a[N], s[N]; // 输入的数组和前缀和数组,已初始化s[0]=0
// 求前缀和的公式:s[r] - s[l - 1]
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
while (m--)
{
int l, r;
cin >> l >> r;
cout << s[r] - s[l - 1] << endl;
}
return 0;
}