• hdu1754 I Hate It


    线段树单点更新模板 求区间最大值


    #include <iostream>
    #include <cstring>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <map>
    #define inf 0x3f3f3f3f
    #define eps 1e-6
    #define ll __int64
    using namespace std;
    
    int n,m,tre[800010];
    
    void build(int num,int s,int e)
    {
        int a;
        if(s==e)
        {
            scanf("%d",&a);
            tre[num]=a;
            return ;
        }
        int mid=(s+e)>>1;
        build(num<<1,s,mid);
        build(num<<1|1,mid+1,e);
        tre[num]=max(tre[num<<1],tre[num<<1|1]);
    }
    
    void update(int num,int s,int e,int pos,int val)
    {
        if(s==e)
        {
            tre[num]=val;
            return ;
        }
        int mid=(s+e)>>1;
        if(pos<=mid)
            update(num<<1,s,mid,pos,val);
        else update(num<<1|1,mid+1,e,pos,val);
        tre[num]=max(tre[num<<1],tre[num<<1|1]);
    }
    
    int query(int num,int s,int e,int l,int r)
    {
        if(l<=s&&e<=r)
        {
            return tre[num];
        }
        int mid=(s+e)>>1;
        if(r<=mid)
            return query(num<<1,s,mid,l,r);
        else if(l>mid) return query(num<<1|1,mid+1,e,l,r);
        else return max(query(num<<1,s,mid,l,mid),query(num<<1|1,mid+1,e,mid+1,r));
    }
    
    int main()
    {
        int a,b;
        char str[10];
        while(~scanf("%d%d",&n,&m))
        {
            build(1,1,n);
            while(m--)
            {
                scanf("%s",&str);
                if(str[0]=='U')
                {
                    scanf("%d%d",&a,&b);
                    update(1,1,n,a,b);
                }
                else
                {
                    scanf("%d%d",&a,&b);
                    printf("%d
    ",query(1,1,n,a,b));
                }
            }
        }
        return 0;
    }
    



  • 相关阅读:
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业02
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    C语言I博客作业08
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8728755.html
Copyright © 2020-2023  润新知