zoukankan      html  css  js  c++  java
  • HDU 1754:I Hate It(线段树-单点更新)

    题意:

    1~N这些人有一些分数,之后有M条操作。要求支持两种操作:更新其中某个人的成绩,查询[A,B]区间内的人的最高成绩。 ( 0<N<=200000,0<M<5000 )

    思路:

    简单线段树。

    Just Do it.

    写这个仅仅是为了有一个模板。

    代码:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    #define N 200020
    #define lson l, mid, rt<<1
    #define rson mid+1, r, rt<<1|1
    
    
    int tree[N<<2];
    
    void pushUp(int rt) {
        tree[rt] = max(tree[rt<<1], tree[rt<<1|1]);
    }
    
    void build(int l, int r, int rt) {
        if (l == r) {
            scanf("%d", &tree[rt]);
            return;
        }
        int mid = (l+r)/2;
        build(lson);
        build(rson);
        pushUp(rt);
    }
    
    int query(int L, int R, int l, int r, int rt) {
        if (L <= l && r <= R) {
            return tree[rt];
        }
        int mid = (l+r)/2;
        int ans = 0;
        if (L <= mid) ans = max(ans, query(L,R,lson));
        if (R > mid) ans = max(ans, query(L,R,rson));
        return ans;
    }
    
    void update(int pos, int v, int l, int r, int rt) {
        if (l == r) {
            tree[rt] = v;
            return;
        }
        int mid = (l+r)/2;
        if (pos <= mid) update(pos, v, lson);
        if (pos > mid) update(pos, v, rson);
        pushUp(rt);
    }
    
    int main() {
        int n ,m;
        while (scanf("%d%d", &n, &m) != EOF) {
            build(1,n,1);
            char com[30];
            for (int i = 0; i < m; i++) {
                int a, b;
                scanf("%s%d%d", com, &a, &b);
                if (com[0] == 'U') {
                    update(a,b,1,n,1);
                }
                if (com[0] == 'Q') {
                    printf("%d
    ", query(a,b,1,n,1));
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    MCMC算法解析
    深度学习结合SLAM研究总结
    语义SLAM研究现状总结
    Tensorflow--矩阵切片与连接
    faster-rcnn原理讲解
    Tensorflow 大规模数据集训练方法
    SPP-net原理解读
    Batch Normalization原理
    RCNN算法的tensorflow实现
    Tensorflow基本操作理解
  • 原文地址:https://www.cnblogs.com/shinecheng/p/3601884.html
Copyright © 2011-2022 走看看