敵兵布陣 HDU 1166 線段樹

2022-06-12 03:54:12 字數 2929 閱讀 5749

線段樹模板題:

1 #include2 #include3 #include

4 #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 #include

4 #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國都掌握的一清二楚,每個工兵營地的人數都有可能發生...