線段樹的基礎應用

2021-07-23 14:02:30 字數 698 閱讀 7381

大約為葉子節點的4倍

線段樹父節點的資訊可以利用up()從子節點提取的

同時線段樹樹上可以通過down()將父節點的資訊給子節點

void tree(int l,int r,int p)
void build(int l,int r,int p)
以求區間和為例

void update(int x,int a,int p)

int mid=tree[p].mid();

down(p);

if(x<=mid)update(x,a,2*p);

else update(x,a,2*p+1);

up(p);

}

利用down函式進行延遲跟新

void down(int p)

void update(int l,int r,int c,int p)

update(l,r,c,2

*p);update(l,r,c,2

*p+1);

up(p);

}

int query(int

x,int p)

int query(int l,int r,int p)

線段樹的應用

標籤 空格分隔 c 資料結構 有時候我們求乙個給定的平面直角座標系中的n個矩形的面積,而此時,我們就需要引入一種高效且奇妙的演算法 掃瞄線。例如該圖 我們將其中的矩形按上下邊,構建4條掃瞄線,並按照y值大小進行排序,並標記為上或下。但是由於矩形的x座標有4個,並且相互關聯,而想要提公升演算法效率就必...

線段樹應用

1 區間最值查詢問題 查詢區間最值下標 min includeusing namespace std define maxn 100 define maxind 256 線段樹節點個數 構建線段樹,目的 得到m陣列.void build int node,int b,int e,int m,int ...

線段樹 01 線段樹基礎

物理上 public class segmenttree public int getsize public e get int index 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的左孩子節點的索引 private int leftchild int index 返回完全二叉樹的陣列表示中...