hdu1166
題意:中文題。。
線段樹的入門題,線段樹是支援一種區間操作的資料結構,時間複雜度能在o(m*logn)時間內完成,m是操作次數,線段樹是一種樹結構,每次不管是修改單點的值還是求和,只用維護一條簡單路勁(從根到葉子節點)能在logn時間內完成,**中建樹過程從下到上建樹,更新也是從下到上
#include #include #include #include using namespace std;
const int maxnode=1<<18;
const int maxn=50000+10;
int sum[maxnode];
void push_up(int i)
void build(int i,int l,int r)
build(i<<1,l,(l+r)/2);
build(i<<1|1,(l+r)/2+1,r);
push_up(i);
}void update(int n,int val,int l,int r,int i)
int m=(l+r)>>1;
if(n<=m)update(n,val,l,m,i<<1);
else update(n,val,m+1,r,i<<1|1);
push_up(i);
}int query(int a,int b,int l,int r,int i)
int m=(l+r)>>1;
int ans=0;
if(a<=m)ans+=query(a,b,l,m,i<<1);
if(b>m)ans+=query(a,b,m+1,r,(i<<1)+1);
return ans;
}int main()
else if(s[0]=='a')
else if(s[0]=='s')}}
return 0;
}
初步線段樹 hdu1166
include include includeusing namespace std define max 50000 struct node node maintree 4 max void settree int n,int l,int r int main printf case d n tt...
hdu 1166 線段樹 初步
subject interval tree author a clay created date 2012 02 03 sample hdoj 1166 敵兵布陣 很基礎,很赤裸,但也很經典 include include include include include define bug cou...
敵兵布陣 HDU 1166(線段樹點更新)
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...