前缀和模板题
菜鸡的我只会签到题
利用公式 sum[i] = sum[i - 1] + a[i];求出前缀和,所以在求得解的时候只需要O(1)的时间就可以求出我们所需要的答案 ans = sum[y] - sum[x - 1];
#include <bits/stdc++.h> using namespace std; const int maxn = 1e6 + 10; typedef long long ll; ll a[maxn], sum[maxn]; int main() { ll n, k; while (~scanf("%lld%lld", &n, &k)) { for (int i = 1; i <= n; ++i) { scanf("%lld", &a[i]); sum[i] = sum[i - 1] + a[i]; } for (int i = 1; i <= k; ++i) { ll x, y, ans; scanf("%lld%lld", &x, &y); ans = sum[y] - sum[x - 1]; printf("%lld\n", ans); } } }