树状数组本地能过,提交全RE
查看原帖
树状数组本地能过,提交全RE
571841
ZVitality楼主2022/7/15 13:35
#include <bits/stdc++.h>
using namespace std;

#define int long long

int a[500001];
int n,m;

int Lowbit(int x) {
	return x & (-x);
}

int Update(int x,int val) {
	for(;x <= n;x += Lowbit(x))
		a[x] += val;
}

int Query(int x) {
	int ans = 0;
	for(;x;x -= Lowbit(x))
		ans += a[x];
	return ans;
}

signed main() {
	cin >> n >> m;
	int last = 0,now;
	for(int i = 1;i <= n;i++) cin >> now,Update(i,now - last),last = now;
	while(m--) {
		int choice;
		int k;
		cin >> choice;
		if(choice == 1) {
			int l,r;
			cin >> l >> r >> k;
			Update(l,k);
			Update(r + 1,-k);
		}
		else {
			cin >> k;
			cout << Query(k) << '\n';
		}
	}
	return 0;
}
2022/7/15 13:35
加载中...