ACM 資料結構 線段樹模板

2022-01-11 16:01:39 字數 921 閱讀 7062

#include#include

using

namespace

std;

#define maxn 200005

class

nodenode[maxn];

int getright(int n)

void build(int l,int r,int num)

node[num].l=l;node[num].r=r;node[num].add=0;node[num].sum=0

; build(l,(l+r)/2,num*2

); build((l+r)/2+1,r,num*2+1);}

void add(int o,int l,int r,int v)

else

}//維護節點o

if(node[o].l!=node[o].r)

else node[o].sum=0

; node[o].sum+=node[o].add*(node[o].r-node[o].l+1);}

//這裡addadd是從上往下這條路的累計addadd值[一同回溯記錄這條路節點所有add之和,減少了一次回溯累加add值]

//初始時直接令其為0

int sum=0

;void ask(int o,int l,int r,int addadd)

else

}}int

main()

char str[10

]; cout

<<"

case

"<"

:\n"

;

bool ok=1

;

while

(ok)}}

return0;

}

資料結構 線段樹模板

雖然看著挺長,但是其中有很多注釋,同時也可作為洛谷p3372的題解。從第10行看即可。file 線段樹模板 預設下標從0開始,see startat 如果很閒,可以包裝成模板類打發時間 include if cplusplus 201103l typedef unsigned long uint32...

模板 線段樹 資料結構 線段樹練習題三

給定一條長度為m的線段,有n個操作,每個操作有3個數字x,y,z表示把區間 x,y 染成顏色z,詢問染完色之後,這條長度為m的線段一共有幾種顏色。規定 線段的顏色可以相同。連續的相同顏色被視作一段。問x軸被分成多少段。乙個n,乙個l,n行x1,x2,color 被分成多少段 4 2010191 29...

資料結構 線段樹

啦啦啦啦啦啦線段樹是個好東西 好吧並沒有什麼好的 但貌似還是很好啊 線段樹就是一棵樹!顧名思義 又是這個詞 就是求關於一段的某些什麼什麼東西。比如區間最大值啊什麼的。引用百科知識 線段樹是一種二叉搜尋樹,與區間樹相似,它將乙個區間劃分成一些單元區間,每個單元區間對應線段樹中的乙個葉結點。對於線段樹中...