15 模板 樹狀陣列1

2021-10-19 09:13:03 字數 1103 閱讀 4049

如題,已知乙個數列,你需要進行下面兩種操作:

第一行包含兩個正整數 n,m,分別表示該數列數字的個數和操作的總個數。

第二行包含 n 個用空格分隔的整數,其中第 i 個數字表示數列第 i 項的初始值。

接下來 m 行每行包含 3 個整數,表示乙個操作,具體如下:

輸出包含若干行整數,即為所有操作 2 的結果。

輸入 #1複製

5 5

1 5 4 2 3

1 1 3

2 2 5

1 3 -1

1 4 2

2 1 4

輸出 #1複製

14

16

【資料範圍】

對於 30%30% 的資料,1 \le n \le 81≤n≤8,1\le m \le 101≤m≤10;

對於 70%70% 的資料,1\le n,m \le 10^41≤n,m≤104;

對於 100%100% 的資料,1\le n,m \le 5\times 10^51≤n,m≤5×105。

樣例說明:

故輸出結果14、16

#include

using

namespace std;

#define maxn 500005

int n,m;

int a[maxn]

,c[maxn]

;int

lowbit

(int x)

void

update

(int x,

int y)

}int

ssum

(int x)

return res;

}int

main()

int p1,x,y;

for(

int i=

1;i<=m;i++)}

}

模板 樹狀陣列1

這篇是樹狀陣列模板1 主要內容有 1.將某數加上x 2.求某區間和 也就是說支援單點修改 關於樹狀陣列的部落格講解 見基本介紹 include include include using namespace std define in read typedef long long ll const ...

模板 樹狀陣列 1

題目鏈結 如題,已知乙個數列,你需要進行下面兩種操作 第一行包含兩個正整數 n,m,分別表示該數列數字的個數和操作的總個數。第二行包含 n 個用空格分隔的整數,其中第 i 個數字表示數列第 i 項的初始值。接下來 m 行每行包含 3 個整數,表示乙個操作,具體如下 輸出包含若干行整數,即為所有操作 ...

模板 樹狀陣列1

洛谷p3374樹狀陣列 1 能夠用樹狀陣列維護的值必須滿足區間加 將兩個區間合併 和區間減 將乙個區間拆開 例 區間和可以加減,但區間最值只能加不能減 樹狀陣列的作用是動態維護區間資料和動態查詢,基本用途是維護區間和 以下講解都以區間和為例 lowbit運算 lowbit n 定義為非負整數n在二進...