P3368 模板 樹狀陣列 2

2021-10-24 02:24:36 字數 886 閱讀 4531

題目傳送門

p3368 【模板】樹狀陣列 2

給你乙個長度為n的陣列

操作 1: 格式:1 x y k 含義:將區間 [x,

y]

[x,y]

[x,y

] 內每個數加上 kkk;

操作 2: 格式:2 x 含義:輸出第 x

xx 個數的值。

區間更新,單點查詢的樹狀陣列

#include

#include

#include

#include

using

namespace std;

#define endl '\n'

#define inf 0x3f3f3f3f

#define int long long

// #define tds_acm_local

const

int n=

5e5+9;

int n, m;

int a[n]

,bit[n]

;//對應原陣列和樹狀陣列

intlowbit

(int x)

void

updata

(int i,

int k)

}int

getsum

(int i)

return res;

}//差分建樹,這樣更新區間時變為了a[x]和a[y+1]的更新

void

solve()

while

(m--

)else

if(flag==2)

}return;}

signed

main()

P3368 模板 樹狀陣列 2

題目描述 如題,已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數數加上x 2.求出某乙個數的值 輸入格式 第一行包含兩個整數n m,分別表示該數列數字的個數和操作的總個數。第二行包含n個用空格分隔的整數,其中第i個數字表示數列第i項的初始值。接下來m行每行包含2或4個整數,表示乙個操作,具...

P3368 模板 樹狀陣列 2

題目描述 如題,已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數數加上x 2.求出某乙個數的值 輸入格式 第一行包含兩個整數n m,分別表示該數列數字的個數和操作的總個數。第二行包含n個用空格分隔的整數,其中第i個數字表示數列第i項的初始值。接下來m行每行包含2或4個整數,表示乙個操作,具...

P3368 模板 樹狀陣列 2

如題,已知乙個數列,你需要進行下面兩種操作 1.將某區間每乙個數數加上x 2.求出某乙個數的值 第一行包含兩個整數n m,分別表示該數列數字的個數和操作的總個數。第二行包含n個用空格分隔的整數,其中第i個數字表示數列第i項的初始值。接下來m行每行包含2或4個整數,表示乙個操作,具體如下 操作1 格式...