線段樹模板題:
1 #include2 #include3 #include4 #include5 #include
6 #include7 #include8 #include9 #include10 #include11
12#define maxsize 50010
1314
using
namespace
std;
1516
int tree[4*maxsize];
17int
t, n;
18char order[100
];19
20void
init()21
2425
26void build(int node, int l, int
r)27 33
34int mid = (l+r)/2
;35 build(node*2
, l, mid);
36 build(node*2+1, mid+1
, r);
3738 tree[node] = tree[node*2] + tree[node*2+1
];39}40
41//
單點更新
42void update(int node, int l, int r, int index, int
add)
4349
50int mid = (l+r)/2;51
if(index <= mid) //
進入左子樹
52 update(node*2
, l, mid, index, add);
53else
//進入右子樹
54 update(node*2+1, mid+1
, r, index, add);
5556 tree[node] = tree[node*2] + tree[node*2 + 1
]; 57}58
59//
區間查詢
60int query_range(int node, int l, int r, int l, int
r)61
7374
intmain()
75103
}104
}105
106return0;
107 }
1 #include2 #include3 #include4 #include5 #include
6 #include7 #include8 #include9 #include10 #include11
12#define maxsize 50010
1314
using
namespace
std;
1516
int tree[4*maxsize];
17int lz[4*maxsize];
18int
t, n;
19char order[100
];20
21void
init()22
2627
28void build(int node, int l, int
r)29 35
36int mid = (l+r)/2
;37 build(node*2
, l, mid);
38 build(node*2+1, mid+1
, r);
3940 tree[node] = tree[node*2] + tree[node*2+1
];41}42
4344
void push_down(int node, int l, int
r)4555}
5657
//區間更新,lr為更新範圍,lr為線段樹範圍,add為更新值
58void update_range(int node, int l, int r, int l, int r, int
add)
5966
67push_down(node, l, r);
68int mid = (l+r)/2;69
if(mid >= l) //
進入左子樹
70 update_range(node*2
, l, r, l, mid, add);
71if(r > mid) //
進入右子樹
72 update_range(node*2+1, l, r, mid+1
, r, add);
7374 tree[node] = tree[node*2] + tree[node*2 + 1
]; 75}76
77//
區間查詢
78int query_range(int node, int l, int r, int l, int
r)79
9293
94void add(int i, int
j)95
9899
100void sub(int i, int
j)101
104105
106int query(int i, int
j)107
111112
113int
main()
114142
}143
}144
145return0;
146 }
線段樹 hdu1166 敵兵布陣
problem description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的...
敵兵布陣 HDU 1166 線段樹
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...
敵兵布陣 HDU 1166(線段樹)
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...