線段樹專題 hdu 1166敵兵布陣

2021-06-09 12:55:12 字數 1093 閱讀 9542

線段樹基礎入門題,裸線段樹什麼的不解釋。

//my 187ms ac

//第一道自己a過去的線段樹~

#include#include#include#define ls rt<<1

#define rs rt<<1|1

#define lson l,m,ls

#define rson m+1,r,rs

#define sf scanf

#define pf printf

using namespace std;

const int n=50000+10;

int a[n],num[4*n],ans;

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

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

build(lson);

build(rson);

//段內就線段上 +點 ,這樣會tle。

}void add(int x,int y,int l,int r,int rt)

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

if(x<=m) add(x,y,lson);

if(x>=m+1) add(x,y,rson);

num[rt]=num[ls]+num[rs];

}void query(int ql,int qr,int l,int r,int rt)

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

if(ql<=m) query(ql,qr,lson);

if(qr>=m+1) query(ql,qr,rson);

}int main()

build(1,n,1);//注意這個寫在迴圈外面!!

//for(i=0;i<4*n;i++)pf("%d ",num[i]);

char s[10];

pf("case %d:\n",q++);

while(sf("%s",s)!=eof)

if(s[0]=='a') add(x,y,1,n,1);

if(s[0]=='s') add(x,-y,1,n,1);}}

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國都掌握的一清二楚,每個工兵營地的人數都有可能發生...