a = [0,3,1,4,2,5]
tr = [0] * (n+1)
n = 5;
def lowbit(x):
return x & -x
def update(x, k):
while x <= n :
tr[x] += k
x += lowbit(x)
# 求1~x的和
def sum(x):
ans = 0
while x > 0 :
ans += tr[x]
x -= lowbit(x)
return ans
for i in range(1,n+1):
update(i, a[i])
#求2~4的和
print(sum(4)-sum(1))
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com