zoukankan      html  css  js  c++  java
  • 存一下线段树模板

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<map>
     5 #define ls l,mid,rt<<1
     6 #define rs mid+1,r,rt<<1 |1
     7 using namespace std;
     8 const int mxn=100020;
     9 int data[mxn*4];
    10 int tre[mxn],mini[mxn];
    11 int add[mxn];//懒标记 
    12 void pushup(int rt){
    13     mini[rt]=min(mini[rt<<1],mini[rt<<1 |1]);
    14 }
    15 void pushdown(int rt){//向下传递lazy标记 
    16     if(add[rt]!=0){
    17         add[rt<<1]+=add[rt];
    18         add[rt<<1 |1]+=add[rt];
    19         mini[rt<<1]+=add[rt];
    20         mini[rt<<1 |1]+=add[rt];
    21         add[rt]=0;//标记传递完毕,清除 
    22     }
    23     return;
    24 }
    25 void Build(int l,int r,int rt){//建树 
    26     if(l==r){
    27         mini[rt]=data[l];
    28         return;
    29     }
    30     int mid=(l+r)>>1;
    31     Build(ls);Build(rs);
    32     pushup(rt);
    33     return;
    34 }
    35 void update_point(int p,int x,int l,int r,int rt){//单点更新 
    36     if(l==r){
    37         mini[rt]=x;
    38         return;
    39     }
    40     int mid=(l+r)>>1;
    41     if(p<=mid)update_point(p,x,ls);
    42     else update_point(p,x,rs);
    43     return;
    44 }
    45 void update_area(int L,int R,int c,int l,int r,int rt){//区域更新 
    46     if(L<=l && r<=R){
    47         add[rt]+=c;
    48         mini[rt]+=c;
    49     }
    50     pushdown(rt);
    51     int mid=(l+r)>>1;
    52     if(L<=mid)update_area(L,R,c,ls);
    53     if(R>mid)update_area(L,R,c,rs);
    54     pushup(rt);
    55     return;
    56 }
    57 int query(int L,int R,int l,int r,int rt){//区域查询 
    58     if(L<=l && r<=R)return mini[rt];
    59     int mid=(l+r)>>1;
    60     int ans=1000000;
    61     if(L<=mid)ans=min(ans,query(L,R,ls));
    62     if(mid<R)ans=min(ans,query(L,R,rs));
    63     return ans;
    64 }
    65 int main(){
    66     
    67     
    68     
    69 }
  • 相关阅读:
    oracle查询锁表解锁语句
    转:js,jQuery 排序的实现,网页标签排序的实现,标签排序
    禁止页面缩放功能
    js 操作 cookie
    random模块
    以及模块的四种形式模块的四种形式和模块的调用
    函数的调用
    函数的返回值
    可变长参数
    函数的重点内容
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5648327.html
Copyright © 2011-2022 走看看