您的位置:首页 > 其它

线段树,小模板

2014-03-17 23:00 393 查看
#include <isotream>

#include <stdio.h>

#include <string.h>

#define maxn 10000

using namespace std;

tree[maxn << 2]

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

{

    if( l == r )

     {

         scanf("%d",&tree[rt]);

         return ;

     }

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

     build(l , mid, rt << 1  );

     build(mid +£±, r , rt << 1|1);

     tree[rt] = max(tree[rt<<1], tree[rt<<1|1]);

     return ;

}

void update(int pos, int l, int r,int rt, int val)

{

    if( pos == l && l == r)

      {

           tree[rt] = val;

           return ;

      }

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

    if(pos <= mid )

      update(pos, l, mid, rt << 1 , val);

    else

      upadate( pos, mid, r, rt << 1, val);

    tree[rt] = max(tree[rt<<1], tree[rt<<1|1]);

    return ;

}

int solve(int L, int R, int l, int r,int rt)

{

    if( L <= l&& R>=r )

      return tree[rt];

      int ls(0),rs(0);

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

    if(mid >= L)

      ls = max(L,mid,l,r,rt);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: