更新節點,區間求和
#include#include using namespace std;
int sum;
int ac[50010];
struct nodet[140000];
/*建樹思路:a、對於二分到的每乙個結點,給它的左右端點確定範圍。
b、如果是葉子節點,儲存要維護的資訊。
c、狀態合併。*/
void build(int k,int l,int r)
else
}//區間查詢,即查詢一段區間的狀態,在引例中為查詢區間[x,y]的和
/*與二分查詢法基本一致,如果當前列舉的點左右端點相等,即葉子節點,就是目標節點。如果不是,因為這是二分法,所以設查詢位置為x,當前結點區間範圍為了l,r,中點為 mid,則如果x<=mid,則遞迴它的左孩子,否則遞迴它的右孩子*/
void query(int x,int y,int k)
else
}}//單點修改,即更改某乙個點的狀態。用引例中的例子,對第x個數加上y
void add(int x,int y,int k)
//單點修改,引例 對第x個數減去y
void sub(int x,int y,int k)
int main()
build(1,1,n);
printf("case %d:\n",++yy);
while(1)
if(ss[0]=='a')
if(ss[0]=='s')}}
return 0;
}
簡單理解:有關二進位制)
線段樹 敵兵布陣
a 敵兵布陣 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 1166 description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他...
線段樹 敵兵布陣
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...
資料結構 線段樹 敵兵布陣
problem description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的...