題目鏈結
如題,已知乙個數列,你需要進行下面兩種操作:
第一行包含兩個正整數 n,m,分別表示該數列數字的個數和操作的總個數。
第二行包含 n 個用空格分隔的整數,其中第 i 個數字表示數列第 i 項的初始值。
接下來 m 行每行包含 3 個整數,表示乙個操作,具體如下:
輸出包含若干行整數,即為所有操作 2 的結果。
輸入5 5
1 5 4 2 3
1 1 3
2 2 5
1 3 -1
1 4 2
2 1 4
輸出14
16
#include
using
namespace std;
const
int maxn =
1e6+10;
int n, m, f[maxn]
;int
lowbit
(int k)
void
update
(int x,
int k)
// 單點更新
}int
query
(int x)
// 區間查詢
return ans;
}int
main()
while
(m--
)else
if(a ==2)
}return0;
}
模板 樹狀陣列1
這篇是樹狀陣列模板1 主要內容有 1.將某數加上x 2.求某區間和 也就是說支援單點修改 關於樹狀陣列的部落格講解 見基本介紹 include include include using namespace std define in read typedef long long ll const ...
模板 樹狀陣列1
洛谷p3374樹狀陣列 1 能夠用樹狀陣列維護的值必須滿足區間加 將兩個區間合併 和區間減 將乙個區間拆開 例 區間和可以加減,但區間最值只能加不能減 樹狀陣列的作用是動態維護區間資料和動態查詢,基本用途是維護區間和 以下講解都以區間和為例 lowbit運算 lowbit n 定義為非負整數n在二進...
模板 樹狀陣列1
這篇是樹狀陣列模板1 主要內容有 1.將某數加上x 2.求某區間和 也就是說支援單點修改 關於樹狀陣列的部落格講解 見基本介紹 include include include using namespace std define in read typedef long long ll const ...