線段樹基礎入門題,裸線段樹什麼的不解釋。
//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國都掌握的一清二楚,每個工兵營地的人數都有可能發生...