前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HDU-1754 I Hate It (树状数组模板题——单点更新,区间查询最大值)

HDU-1754 I Hate It (树状数组模板题——单点更新,区间查询最大值)

作者头像
_DIY
发布2020-02-24 15:30:30
5960
发布2020-02-24 15:30:30
举报

ac代码(注意字符读入前需要注意回车的影响)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
#include<cassert>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<deque>
#include<iomanip>
#include<list>
#include<map>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#define mp make_pair
#define pi acos(-1)
#define pii pair<int, int>
#define pll pair<long long , long long>
#define ll long long
#define ld long double
#define MEMS(x) memset(x, -1, sizeof(x))
#define MEM(x) memset(x, 0, sizeof(x))
const int inf = 0x3f3f3f3f;
const int maxn = 200005;
using namespace std;
int N, M;
int s, c[maxn], d[maxn];
char order;
int lowbit(int x)
{
    return x & (-x);
}
void update(int x)
{
    while(x <= N)
    {
        d[x] = c[x];
        int lx = lowbit(x);
        for(int i = 1; i < lx; i <<= 1)
            d[x] = max(d[x], d[x - i]);
        x += lowbit(x);
    }
}
int getmax(int l, int r)
{
    int ans = 0;
    while(r >= l)
    {
        ans = max(ans, c[r]);
        --r;
        while(r - lowbit(r) >= l)
        {
            ans = max(ans, d[r]);
            r -= lowbit(r);
        }
    }
    return ans;
}
int main()
{
//    freopen("input.txt", "r", stdin);
//    freopen("output.txt", "w", stdout);
    while(scanf("%d %d", &N, &M) != EOF)
    {
        memset(d, 0, sizeof(d));
        for(int i = 1; i <= N; i++)
        {
            scanf("%d", &c[i]);
            update(i);
        }
        int a, b;
        while(M--)
        {
            getchar();
            scanf("%c %d %d", &order, &a, &b);
            if(order == 'U')
            {
                c[a] = b;
                update(a);
            }
            else if(order == 'Q')
                printf("%d\n", getmax(a, b));
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档