樹狀陣列模板

2022-07-22 05:27:14 字數 1547 閱讀 9315

第一篇部落格,就記一下十分優美的樹狀陣列模板吧。

#includeint n,t,a[1001],c[1001

];int lowbit(int

bin)

void add(int x,int

y)int getsum(int

x)int

main()

return0;

}

樹狀陣列

還有差分樹狀陣列。

#includeint

n,m;

int arr[500005],dif[500005],tree[500005

];int lowbit(int

k)void add(int k,int

x)

return;}

int getarr(int

k)

return

ans;

}int

read()

while(c>='

0'&&c<='9'

)

return x*w;

}int

main()

while(m--)

if(x==2

) }

return0;

}

差分樹狀陣列

還有我用py寫的樹狀陣列,不過放到洛谷上t了,情理之中的事。

#

-*- coding: utf-8 -*-

tree=

a=n=0

m=0def

read_int():

"""讀入整數

"""s=input()

lst=s.split('')

return

lst

defadd(x,t):

global

tree

while x<=n:

tree[x]+=t

x+=(x&(-x))

defget(x):

ans=0

while x>0:

ans+=tree[x]

x-=(x&(-x))

return

ansif

__name__=="""

__main__

""":

a=read_int()

n=int(a[0])

m=int(a[1])

a=read_int()

i=0while i<=n:

i+=1i=0

while i

add(i+1,int(a[i]))

i+=1

while m>0:

a=read_int()

if int(a[0])==1:

add(int(a[1]),int(a[2]))

elif int(a[0])==2:

print(get(int(a[2]))-get(int(a[1])-1))

m-=1

樹狀陣列(py)

就這樣了。

樹狀陣列模板

假設有一列數 1 i n 支援如下兩種操作 1.將ai的值加d。2.輸出ai ai 1 aj 1 i j n 樹狀陣列是一種特殊的資料結構,這種資料結構的時空複雜度和線段樹相似,但是它的係數要小得多 hdu 1166 敵兵布陣 題目 a國在海岸線沿直線布置了n個工兵營地。由於採取了某種先進的監測手段...

樹狀陣列模板

已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數數加上x 2.求出某乙個數的和 這種水水的樹狀陣列,博主就不做介紹,直接上 希望大家可以多多捧場!include include include include include include include include include ...

樹狀陣列模板

樹狀陣列 binary indexed tree bit fenwick tree 是乙個查詢和修改複雜度都為log n 的資料結構。主要用於查詢任意兩位之間的所有元素之和,但是每次只能修改乙個元素的值 經過簡單修改可以在log n 的複雜度下進行範圍修改,但是這時只能查詢其中乙個元素的值。一,改點...