50pts???
查看原帖
50pts???
1211668
WMY_楼主2024/6/1 08:41
#include <bits/stdc++.h>
using namespace std;

using LL = int64_t;

const int N = 1e5 + 5;

int A[N];

struct Node {
	LL sum;
}Tree[N * 4];

inline void BuildTree(int l, int r, int p) {
	if(l == r) {
		Tree[p].sum = A[l];
		return;
	}
	int m = (l + r) / 2;
	BuildTree(l, m, p * 2);
	BuildTree(m + 1, r, p * 2 + 1);
	Tree[p].sum = Tree[p * 2].sum + Tree[p * 2 + 1].sum;
}

int n;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(nullptr); cout.tie(nullptr);
	cin >> n;
	for(int i = 1; i <= n; ++i)
		cin >> A[i];
	cin >> n;
	for(int i = 1; i <= n; i++) {
		int l, r;
		cin >> l >> r;
		BuildTree(l, r, 1);
		cout << Tree[1].sum << '\n';
	}

	return 0;
}
2024/6/1 08:41
加载中...