树状数组模板题_AcWing 1267.清点人数
作者:
成理第一深情
,
2024-05-03 19:04:07
,
所有人可见
,
阅读 10
"""
树状数组模板题,使用单点修改,区间查询的模板
"""
import sys
input = sys.stdin.readline
print = sys.stdout.write
def lowbit(x):
return x & -x
def change(x, c):
while x <= n:
tr[x] += c
x += lowbit(x)
def query(x):
t = 0
while x:
t += tr[x]
x -= lowbit(x)
return t
n, k = map(int, input().strip().split())
# 初始化树状数组
tr = [0 for _ in range(n + 1)]
while k:
k -= 1
opt = list(input().strip().split())
# 查询操作,询问第m节车厢有多少人
if opt[0] == 'A':
m = int(opt[1])
print(str(query(m)) + '\n')
elif opt[0] == 'B':
m, p = int(opt[1]), int(opt[2])
change(m, p)
else:
m, p = int(opt[1]), int(opt[2])
change(m, -p)