線段樹模板

2021-10-05 03:43:13 字數 1710 閱讀 7926

//start 、end表示當前arr陣列的起始位置, now表示當前tree的下標 

void

build_tree

(int arr,

int tree,

int now,

int start,

int end)

//建樹

else

}

//表示把index下標的值更新為x 

void

update_tree

(int arr,

int tree,

int now,

int start,

int end,

int index,

int x)

else

else

tree[now]

=tree[left]

+tree[right];}

}

//表示求l~r範圍的和 

intfind_tree

(int arr,

int tree,

int now,

int start,

int end,

int l,

int r)

else

if(l<=start&&end<=r)

else

if(start==end)

else

}

洛谷模板題鏈結

ac code:

#include

#include

#include

using

namespace std;

int a[

5010000

],tree[

5010000];

//start 、end表示當前arr陣列的起始位置, now表示當前tree的下標

void

build_tree

(int arr,

int tree,

int now,

int start,

int end)

//建樹

else

}//表示把index下標的值更新為x

void

update_tree

(int arr,

int tree,

int now,

int start,

int end,

int index,

int x)

else

else

tree[now]

=tree[left]

+tree[right];}

}//表示求l~r範圍的和

intfind_tree

(int arr,

int tree,

int now,

int start,

int end,

int l,

int r)

else

if(l<=start&&end<=r)

else

if(start==end)

else

}int

main()

else

}}

線段樹模板(模板)

參考部落格 持續更新。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img xhrgdjcd 1613976863463 區間儲存在陣列中的下標對應為 12 3 4 5 6 7 8 9 10 11 12 13 14 15 四部分單點更新 根據題目的要求編寫自己的pushup,query...

線段樹模板

include include include using namespace std const int size 10010 struct node the node of line tree class linetree void updatem void updateline public ...

線段樹模板

單點更新,區間求最值 include include include include include define n 222222 using namespace std int num n struct tree tree n 4 void push up int root void build...