写的树状数组为什么会TLE(python)
查看原帖
写的树状数组为什么会TLE(python)
150125
蒋中翼楼主2024/10/17 17:14
def lowbit(x):
    return x&-x

def plss(x,k):
    global t
    while x<=len(t)-1:
        t[x]+=k
        x+=lowbit(x)

def summ(x):
    ans=0
    while x>0:
        ans+=t[x]
        x-=lowbit(x)
    return ans

a=input().split()
t=[0]*(int(a[0])+1)
n=int(a[1])
a=input().split()
lst=[0]

for i in range(len(a)):
#    lst.append(int(a[i]))
    plss(i+1,int(a[i]))

for i in range(n):
    a=input().split()
    if int(a[0])==1:
#        lst[int(a[1])]+=int(a[2])
        plss(int(a[1]),int(a[2]))
        
    else:
        print(summ(int(a[2]))-summ(int(a[1])-1))
2024/10/17 17:14
加载中...