zoukankan      html  css  js  c++  java
  • HDU 5124 树状数组+map操作

     看到这道题毫无疑问就是线段树做,在2个小时的时间卡死在这道题了。。。一直觉得会超内存,后来看了题解才知道自己真是笨的可以。。。题目做的太少的缘故吧。。。这道题正好是点更新,果断放弃了线段树,用树状数组来搞(结果到最后也没有更新,反正趁机又复习了一下树状数组),第一次用map,感觉真是好用啊。。。下面是ac代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <map>
    
    using namespace std;
    
    const int maxn = 100005;
    int a[maxn<<1],c[maxn<<1],n;
    map <long long,int> u;
    
    int lowbit(int x)
    {
        return x&(-x);
    }
    void init()
    {
        memset(c,0,sizeof(c));
        for(int i=1;i<=n;i++)
        {
            for(int j=i-lowbit(i)+1;j<=i;j++)
            {
                c[i]+=a[j];
            }
        }
    }
    int Sum(int i)
    {
        int sum=0;
        while(i)
        {
            sum+=c[i];
            i-=lowbit(i);
        }
        return sum;
    }
    void change(int i,int x)
    {
        while(i<=n)
        {
            c[i]+=x;
            i+=lowbit(i);
        }
    }
    int main()
    {
        int tCase;
        scanf("%d",&tCase);
        while(tCase--)
        {
            int N;
            scanf("%d",&N);
            n=0;
            u.clear();
            while(N--)
            {
                long long x,y;
                scanf("%I64d%I64d",&x,&y);
                u[x]=u[x]+1;
                u[y+1]=u[y+1]-1;
            }
            map <long long,int> :: iterator iter;
            for(iter=u.begin();iter!=u.end();iter++)
            {
                a[++n]=iter->second;
            }
            init();
            int ans=0;
            for(int i=0;i<n;i++)
            {
                int sum=Sum(i);
                if(ans<sum)
                    ans=sum;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    


  • 相关阅读:
    postcss-pxtorem
    git命令记录
    伪类和伪元素
    JavaScript设计模式
    每日思考(2020/09/08)
    每日思考(2020/09/03)
    每日思考(2020/09/02)
    每日思考(2020/09/01)
    每日思考(2020/08/31)
    每日思考(2020/08/27)
  • 原文地址:https://www.cnblogs.com/hqwhqwhq/p/4555887.html
Copyright © 2011-2022 走看看