zoukankan      html  css  js  c++  java
  • hdoj 4417 Super Mario

    http://acm.hdu.edu.cn/showproblem.php?pid=4417

    你妹妹的 cin cout scanf printf.是差了好远呀,cin cout 会wa但scanf printf就ac了。。

    了解了eaual_range()的神奇操作。。

    做法就是线段树,vector很强大。。

    View Code
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<vector>
    #define lson l,m,root<<1
    #define rson m+1,r,root<<1|1
    using namespace std;
    const int maxn=100001;
    typedef vector < int >vi;
    typedef pair < vi::iterator,vi::iterator> pii;
    int h[maxn];
    vi tree[maxn*4];
    int n,m;
    void build(int l,int r,int root)
    {
        tree[root].clear();
        for(int i=l;i<=r;i++)
            tree[root].push_back(h[i]);
        sort(tree[root].begin(),tree[root].end());
        if(l==r)return ;
        int m=(l+r)>>1;
        build(lson);
        build(rson);
    }
    int query(int ll,int rr,int h,int l,int r,int root)
    {
    
        if(ll<=l&&r<=rr)
        {
            pii result;
            result=equal_range(tree[root].begin(),tree[root].end(),h);
            return result.second-tree[root].begin();
        }
        int ans=0;
        int m=(l+r)>>1;
        if(ll<=m)
        ans=query(ll,rr,h,lson);
        if(rr>m)
        ans+=query(ll,rr,h,rson);
        return ans;
    }
    void solve()
    {
           int l,r,h;
           for(int j=1;j<=m;j++)
          {
            scanf("%d%d%d",&l,&r,&h);
            printf("%d\n",query(l,r,h,0,n-1,1));
          }
    }
    int main()
    {
        int test;
        scanf("%d",&test);
        for(int i=1;i<=test;i++)
        {
            scanf("%d%d",&n,&m);
            for(int j=0;j<n;j++)
            scanf("%d",&h[j]);
            printf("Case %d:\n",i);
            build(0,n-1,1);
            solve();
    
        }
        return 0;
    }
  • 相关阅读:
    python实现斐波那契数列
    Python全栈开发【课程目录】
    windows 下部署Docker
    Restful API设计
    linux下部署radis
    linux下部署rabbitmq
    Django 发送邮件
    django模板之forloop
    Django自定制插件之【随机验证码】
    Django的MultipleChoiceField处理小技巧
  • 原文地址:https://www.cnblogs.com/cs1003/p/2700575.html
Copyright © 2011-2022 走看看