• I Hate It---hdu1754线段树


    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1754

    和上一题一样是模板题,就是那道题求得是和,这道求得是最大值:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<algorithm>
    #include<queue>
    
    using namespace std;
    
    #define N 201000
    #define INF 0xfffffff
    #define Lson r<<1
    #define Rson r<<1|1
    
    struct Segment
    {
        int L, R, Max;
        int Mid()
        {
            return (L+R)>>1;
        }
    } a[N<<2];
    
    void BuildTree(int r, int L, int R)
    {
        a[r].L = L;
        a[r].R = R;
        if(L == R)
        {
            scanf("%d", &a[r].Max);
            return ;
        }
        BuildTree(Lson, L, a[r].Mid());
        BuildTree(Rson, a[r].Mid()+1, R);
    
        a[r].Max = max(a[Lson].Max, a[Rson].Max);
    }
    int Query(int r, int L, int R)
    {
        if(a[r].L == L && a[r].R == R)
            return a[r].Max;
        if(L > a[r].Mid())
            return Query(Rson, L, R);
        else if(R <= a[r].Mid())
            return Query(Lson, L, R);
        else
        {
            int Max1 = Query(Lson, L, a[r].Mid());
            int Max2 = Query(Rson, a[r].Mid()+1, R);
            return max(Max1 , Max2);
        }
    }
    void Update(int r, int p, int x)
    {
        if(a[r].L == p && a[r].R == p)
        {
            a[r].Max = x;
            return ;
        }
        if(p > a[r].Mid())
            Update(Rson, p, x);
        else
            Update(Lson, p, x);
    
        a[r].Max = max(a[Rson].Max, a[Lson].Max);
    }
    int main()
    {
        int n, m, a, b;
        char s[10];
        while(scanf("%d%d",&n, &m) != EOF)
        {
            BuildTree(1, 1, n);
            for(int i=0; i<m; i++)
            {
                scanf("%s%d%d", s, &a, &b);
                if(s[0] == 'Q')
                    printf("%d
    ", Query(1, a, b));
                else
                    Update(1, a, b);
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Cisco Packet Tracer 7.2
    "%Error opening tftp://255.255.255.255/network config"
    CPI 3.0磁盘空间不足!
    ASA Failover
    思科交换机配置单播MAC地址过滤
    WLC HA模式下的注意事项
    802.11r mixed mode
    IEEE 802.11r-2008
    iOS 上通过 802.11k、802.11r 和 802.11v 实现 Wi-Fi 网络漫游
    Flexconnect部署
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/4690375.html
Copyright © 2020-2023  润新知