#include #include #include #include #define lson l, m, rt<<1//左子樹的rt即當前節點在這個樹中的位置(編號)為每次乘2
#define rson m+1, r, rt<<1|1//右子樹樹的當前節點的編號為乘2加1
using namespace std;
const int maxn = 55555;
int sum[maxn<<2];
void pushup(int rt)
void build(int l, int r, int rt)//左右區間,以及當前所正在建造的節點
int m;
m = (l+r)>>1;
build(lson);//(define 的作用)遞迴建樹
build(rson);
pushup(rt);//這裡為從下向上的每個父親節點的值,如若更新葉子節點則必通過這裡向上更新父親節點的值
}void update(int p, int add, int l, int r, int rt)
int m = (l+r)>>1;
if(p <= m) update(p, add, lson);
else update(p, add, rson);
pushup(rt);
}int query(int newl, int newr, int l, int r, int rt)
int main()
}return 0;
}/*順便再次膜拜一下hh神不然不會有這麼簡潔的**,理解很清楚*/
初步線段樹 hdu1166
include include includeusing namespace std define max 50000 struct node node maintree 4 max void settree int n,int l,int r int main printf case d n tt...
hdu 1166 線段樹 初步
subject interval tree author a clay created date 2012 02 03 sample hdoj 1166 敵兵布陣 很基礎,很赤裸,但也很經典 include include include include include define bug cou...
敵兵布陣 HDU 1166(線段樹點更新)
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...