敵兵布陣 HDU 1166 線段樹

2022-03-16 22:43:05 字數 1144 閱讀 1975

這個題是用中文來描寫的,很簡單,沒什麼彎。

這個題肯定就是用線段樹來做了,不過當時想了一下可不可用差分來做,因為不熟練就還是用了線段樹來做,幾乎就是模板題了。

#include#include#include#include#include# define ls (rt<<1)

# define rs (rt<<1|1)

using namespace std;

const int maxn=5e4+7;

struct nodet[maxn<<2];

int num[maxn];

int n, m;

void up(int rt)

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

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

build(ls, l, mid);

build(rs, mid+1, r);

up(rt);

}void down(int rt)

}void update(int rt, int x, int v)

down(rt);

int mid=(t[rt].l+t[rt].r)>>1;

if(x<=mid) update(ls, x, v);

else update(rs, x, v);

up(rt);

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

down(rt);

int ans=0;

int mid=(t[rt].l+t[rt].r)>>1;

if(l<=mid) ans+=query(ls, l, r);

if(r>mid) ans+=query(rs, l, r);

return ans;

}int main()

build(1, 1, n);

string op;

int x, y;

printf("case %d:\n", ca);

while(cin >> op && op!="end")

else if(op=="add")

else update(1, x, -y);

} }return 0;

}

線段樹 hdu1166 敵兵布陣

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

敵兵布陣 HDU 1166 線段樹

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

敵兵布陣 HDU 1166(線段樹)

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