zoukankan      html  css  js  c++  java
  • 树状数组最值

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    using namespace std;
    
    const int MAXN = 4e3;
    int num[MAXN], tree[MAXN];
    int n, m;
    int lowbit(int x)
    {
            return x & (-x);
    }
    void updata(int x)
    {
            int lx, i;
            while (x <= n)
            {
                    tree[x] = num[x];
                    lx = lowbit(x);
                    for (i = 1; i < lx; i <<= 1)
                    {
                            tree[x] = max(tree[x], tree[x - i]);
                    }
                    x += lowbit(x);
            }
    }
    int query(int x, int y)
    {
            int ans = 0;
            while (y >= x)
            {
                    ans = max(num[y], ans);
                    y --;
                    for (; y - lowbit(y) >= x; y -= lowbit(y))
                    {
                            ans = max(tree[y], ans);
                    }
            }
            return ans;
    }
    int main()
    {
            int i, j, x, y, ans;
            while (cin >> n && n)
            {
                    int ans = 0;
                    int cur;
                    mem(tree, 0);
                    for (i = 1; i <= n; i++)
                    {
                            scanf("%d", &num[i]);
                            updata(i);
                    }
            }
            for (i = 1; i <= m; i++)
            {
                    if (c == 'Q')  //查询
                    {
                            scanf("%d%d", &x, &y);
                            ans = query(x, y);
                            printf("%d
    ", ans);
                    }
                    else if (c == 'U')  //修改
                    {
                            scanf("%d%d", &x, &y);
                            num[x] = y;
                            updata(x);
                    }
            }
    
            return 0;
    }
  • 相关阅读:
    nginx last break等
    Jmeter
    nginx location规则
    解决性能瓶颈的一些思路
    spring 一些总结
    idea快捷键
    可读的jvm gc日志时间
    redis 搭建集群
    windows下使用Python来修改文件时间戳
    Python获得文件时间戳
  • 原文地址:https://www.cnblogs.com/Aragaki/p/7624257.html
Copyright © 2011-2022 走看看