線段樹模板(單點修改 區間查詢)

2021-10-04 18:13:04 字數 1387 閱讀 2034

1547:【 例 1】區間和

時間限制: 1000 ms 記憶體限制: 524288 kb

提交數: 2072 通過數: 639

【題目描述】

給定一數列,規定有兩種操作,一是修改某個元素,二是求區間的連續和。

【輸入】

輸入資料第一行包含兩個正整數n,m(n≤100000,m≤500000),以下是m行,

每行有三個正整數k,a,b(k=0或1,a,b≤n).k=0時表示將a處數字加上b,k=1時表示詢問區間[a,b]內所有數的和。

【輸出】

對於每個詢問輸出對應的答案。

【輸入樣例】

10 20

0 1 10

1 1 4

0 6 6

1 4 10

1 8 9

1 4 9

0 10 2

1 1 8

0 2 10

1 3 9

0 7 8

0 3 10

0 1 1

1 3 8

1 6 9

0 5 5

1 1 8

0 4 2

1 2 8

0 1 1

【輸出樣例】106

06166

2414

5041

#include

#define ll long long

using

namespace std;

const

int n=

1e5+5;

int n,m,a[n]

,k,x,y;

struct node

tree[

4*n]

;void

push_up

(int id)

void

build

(int id,

int l,

int r)

int mid=

(l+r)/2

;build

(id*

2,l,mid)

;build

(id*2+

1,mid+

1,r)

;push_up

(id);}

void

update

(int id,

int x,

int k)

if(x<=tree[id*2]

.r)else

push_up

(id);}

ll query

(int id,

int l,

int r)

intmain()

return0;

}

線段樹單點修改區間查詢

這是一道模板題。給定數列 a 1 a 2 a n 你需要依次進行 qq 個操作,操作有兩類 1 i x 給定 i,x,將 a i 加上 x 2 l r 給定 l,r,求 ri la i 的值 換言之,求 a l a l 1 a r 的值 input 第一行包含 2 個正整數 n,q,表示數列長度和詢...

I Hate It 線段樹 單點修改 區間查詢

time limit 9000 3000 ms j a others memory limit 32768 32768 k j a others total submission s 40034 accepted submission s 15898 很多學校流行一種比較的習慣。老師們很喜歡詢問,從...

HDU1166 線段樹 單點修改區間查詢

c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...