給定乙個長度為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陣列取字首和,得到的...