首页 > 其他 > 详细

[LibreOJ]P10114数星星

时间:2018-10-04 03:08:47      阅读:174      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<cstdio>
using namespace std;
const int maxx=100500;
int m=150000,ans[maxx],c[maxx],n;
struct data
{
    int x,y;
}a[maxx];
int bow(int x)
{
    return x&(-x);
}
void update(int x,int y)
{
    while(x<=m)
    {
        c[x]+=y;
        x+=bow(x);
    }
    return;
}
int sum(int x)
{
    int ans=0;
    while(x>0)
    {
        ans+=c[x];
        x-=bow(x);
    }
    return ans;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].x>>a[i].y;
    }
    for(int i=1;i<=n;i++)
    {
        int t=a[i].x+1;//防止树状数组内数据出现0
        update(t,1);
        int v=sum(t);//确定等级
        ans[v]++;
    }
    for(int i=1;i<=n;i++)
        cout<<ans[i]<<endl;
    return 0;
}

[LibreOJ]P10114数星星

原文:https://www.cnblogs.com/LSWorld/p/9740773.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!