水题,题目给定了一个固定的数组,让我们处理多个区间求和的询问,我们直接按题目所说的,对原数组进行前缀和操作,查询时直接进行差分即可求得答案。注意开 long long。
#include<bits/stdc++.h> using i64 = long long; int main() { std::cin.tie(nullptr)->sync_with_stdio(false); int n, q; std::cin >> n >> q; std::vector<i64> a(n + 1); for (int i = 1; i <= n; i++) { std::cin >> a[i]; } std::partial_sum(a.begin(), a.end(), a.begin()); while (q--) { int l, r; std::cin >> l >> r; std::cout << a[r] - a[l - 1] << "\n"; } return 0; }