hdu1166 敵兵布陣(線段樹單點更新)

2021-06-28 18:43:30 字數 966 閱讀 6174

題意

n個陣營一字排開,每個初始有a[i]個人。現有兩種操作:

q a b 查詢[a,b]之間總人數並輸出

a/s a b 在a號位新增/刪除b個人

線段樹功能:update:單點增減 query:區間求和

//1676 kb 312 ms

#include#include#include#include#define maxn 50005

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define root 1,n,1

using namespace std;

int n;

int sum[maxn<<2];

void pushup(int rt)

void build(int l,int r,int rt)

int m=(l+r)>>1;

build(lson);

build(rson);

pushup(rt);

}int query(int l,int r,int l,int r,int rt)

int m=(l+r)>>1;

int ans=0;

if(l<=m)

if(r>m) ans+=query(l,r,rson);

return ans;

}void update(int pos,int add,int l,int r,int rt)

int m=(l+r)>>1;

if(pos<=m)

else update(pos,add,rson);

pushup(rt);

}int main()

else if(ch[0]=='a')

else update(a,-b,root);}}

return 0;

}

HDU 1166 敵兵布陣 線段樹

第一道線段樹的題目,正在學習中 include include include using namespace std define max 55555 int sum max 2 n void pushup int rt void build int l,int r,int rt int mid ...

hdu1166敵兵布陣 線段樹

problem description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的...

A 敵兵布陣 線段樹 hdu 1166

a 敵兵布陣 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status practice hdu 1166 description c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek...