树状数组样例过了WA0分qwq求调
  • 板块P2068 统计和
  • 楼主bhr123456
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/7/17 11:45
  • 上次更新2024/7/17 13:46:38
查看原帖
树状数组样例过了WA0分qwq求调
999563
bhr123456楼主2024/7/17 11:45
#include <bits/stdc++.h>
using namespace std;
long long n, m, c[200000];
long long lowbit(int x) {
	return x & (-x);
}
long long getsum(int x) {
	int ans = 0;
	while (x > 0) {
		ans = ans + c[x];
		x = x - lowbit(x);
	}
	return ans;
}
long long getsum(int l, int r) {
	return getsum(r) - getsum(l - 1);
}
void add(int x, int k) {
	while (x <= n) {
		c[x] = c[x] + k;
		x = x + lowbit(x);
	}
}
int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		add(i, 0);
	}
	while (m--) {
		char op;
		cin >> op;
		if (op == 'x') {
			int x, k;
			cin >> x >> k;
			add(x, k);
		} else {
			int x, y;
			cin >> x >> y;
			cout << getsum(x, y) << endl;
		}
	}
	return 0;
}

2024/7/17 11:45
加载中...