zoukankan      html  css  js  c++  java
  • Stars HDU

    HDU - 1541 

    思路:二维偏序,一维排序,一维树状数组查询即可。

    #include<bits/stdc++.h>
    using namespace std;
    #define maxn 33333
    int ans[maxn],n,sum[maxn];
    int lowbit(int x)
    {
        return x&(-x);
    }
    struct node
    {
        int x,y;
        bool operator < (const node &b)const
        {
            if(x==b.x)return y<b.y;
            return x<b.x;
        }
    } a[maxn];
    void add(int x,int d)
    {
        while(x<=32001)
        {
            sum[x]+=d;
            x+=lowbit(x);
        }
    }
    int getsum(int x)
    {
        int ret=0;
        while(x>0)
        {
            ret+=sum[x];
            x-=lowbit(x);
        }
        return ret;
    }
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            memset(sum,0,sizeof(sum));
            memset(ans,0,sizeof(ans));
            for(int i=1; i<=n; i++)
                scanf("%d%d",&a[i].x,&a[i].y);
            sort(a+1,a+1+n);
            for(int i=1; i<=n; i++)
            {
                ans[getsum(a[i].y+1)]++;
                add(a[i].y+1,1);
            }
            for(int i=0; i<n; i++)printf("%d
    ",ans[i]);
        }
        return 0;
    }
    

      

  • 相关阅读:
    __get__,__set__,__delete__
    __getattr__,__setattr__,__delattr__
    json ,pickle
    @property
    类的封装
    super
    继承顺序
    派生组合示例
    类的派生,组合
    class 属性查找
  • 原文地址:https://www.cnblogs.com/SDUTNING/p/10263960.html
Copyright © 2011-2022 走看看