解题思路:
树状数组
注意事项:
输入要快读
参考代码:
import sys
n, m = map(int, input().split())
a = [0 for _ in range(n + 1)]
tr = [0 for _ in range(n + 1)]
def lowbit(x):
return x & -x
def add(x, v):
while x <= n:
tr[x] += v
x += lowbit(x)
def query(x):
res = 0
while x > 0:
res += tr[x]
x -= lowbit(x)
return res
for _ in range(m):
f, a, b = map(int, sys.stdin.readline().split())
if f == 0:
add(a, b)
else:
print(query(b) - query(a - 1))
0.0分
0 人评分
十->二进制转换 (C语言代码)浏览:1291 |
大神老白 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:481 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5228 |
WU-输出正反三角形 (C++代码)浏览:1018 |
幸运数 (C++代码)浏览:1258 |
1050题解(结构体数组与结构体指针的使用)浏览:1106 |
C语言程序设计教程(第三版)课后习题10.7 (用指针求解)浏览:1459 |
简单的a+b (C语言代码)浏览:531 |
拆分位数 (C语言代码)浏览:514 |