樹狀陣列模板題 P1904

2022-08-19 00:03:12 字數 807 閱讀 4747

給定乙個長度為n的整數陣列a[1]、a[2]、…、an,和m個操作:

操作1:1 i x 把a[i]的值增加x(-103<=a[i]<=103);

操作2:2 i j 查詢當前序列的連續子串行a[i]..a[j]的和。

第一行包含兩個整數n和m,表示陣列有n個元素,m表示有m個操作;接下來的一行包含n個整數,第i個整數表示a[i];再接下來的m行,每行表示乙個操作。

按輸入順序輸出操作2的結果。

反正要用long long

嗯,這個題,告訴我們,位運算要打括號。。。

#include#include#include#include#define maxn 100005

#define lowbit(x) (x&(-x))

using namespace std;

long long c[maxn];

long long n,m,z,u,z2,ans1,ans2,ans;

void doadd(long long x,long long y)

}long long sets(long long x)

return s;

}int main()

for(int j=1;j<=m;j++)

else

} return 0;

}

樹狀陣列模板題 洛谷p3374

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

幾道樹狀陣列的模板題

hdu 1166排兵布陣單點修改 區間查詢的樹狀陣列的應用 1 include2 using namespace std 3 typedef unsigned int ui 4 typedef long long ll 5 typedef unsigned long long ull 6 defin...

洛谷P3368 模板 樹狀陣列2 樹狀陣列

已知乙個數列,你需要進行下面兩種操作 將某區間每乙個數數加上x x輸出某乙個數 樹狀陣列只支援單點修改,對於區間修改,單點查詢應該如和完成呢?可以考慮字首和。每次將乙個區間 l,r l r 加上x x時,就將a l x a l x,a r 1 x a r 1 x,這樣如果將a a陣列取字首和,得到的...