Advertisement
saske_7

segment_tree.cpp

Nov 28th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std ;
  4. #define M 500000
  5. #define pii pair<int , int >
  6. #define mp make_pair
  7. #define mem(x , y) memset(x , y , sizeof x)
  8. #define pf printf
  9. #define sf scanf
  10. #define sf1(a ) scanf("%d",&a)
  11. #define pb push_back
  12. #define sf2(a, b) scanf("%d%d",&a ,&b)
  13. #define rep(i,n) for(i = 0 ; i< n ;i++ )
  14.  
  15. void tree[2*M] , arr[M] ;
  16.  
  17. void build(int node ,int r1 , int r2){
  18.  
  19.   if(r1 == r2)
  20.   {
  21.     tree[node] = arr[r1] ; 
  22.     return r1;
  23.   }
  24.   int left , right  , mid;
  25.   left =  node*2 ;
  26.   right =  node*2+1 ;
  27.   mid = (r1 + r2)/2 ;
  28.   build(left , r1 , mid);
  29.   build(right ,mid+1 , r2);
  30.   tree[node] = tree[left] + tree[right];
  31.  
  32.  
  33. }
  34.  
  35. int query(int node , int r1 , int r2 , int i , int j ){
  36.     if(r1 > j || i > r2) return 0 ;
  37.     if( r1 >= i && r2 <= j ) return tree[node];
  38.     int left , right , mid ;
  39.     left =  node*2 ;
  40.     right =  node*2 + 1;
  41.     mid =  (r1+ r2 )/ 2;
  42.  
  43.     return query(left , r1 , mid,i ,j) + query(right  , mid+1 , r2 , i , j );
  44.  
  45.  
  46. }
  47.  
  48.  
  49. void query(int node , int r1 , int r2 , int i , int value ){
  50.     if(r1 > i || i > r2) return 0 ;
  51.     if( r1 >= i && r2 <= i ) return tree[node];
  52.     int left , right , mid ;
  53.     left =  node*2 ;
  54.     right =  node*2 + 1;
  55.     mid =  (r1+ r2 )/ 2;
  56.     query(left , r1 , mid,i , value);
  57.     query(right  , mid+1 , r2 , i , vlaue );
  58.  
  59.     tree[node] = tree[left ] + tree[right];
  60.  
  61. }
  62.  
  63. int main(){
  64. // pf("hello world\n");
  65.    
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.   return 0 ;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement