#include<bits/stdc++.h>
using namespace std;
const int MAXN=32005;
int a[MAXN];
int lowbit(int k)
{
return k&-k;
}
void add(int k,int num,int n)
{
while(k<=MAXN)
{
a[k]+=num;
k+=lowbit(k);
}
}
int sum(int k)
{
int s=0;
while(k)
{
s+=a[k];
k-=lowbit(k);
}
return s;
}
int main()
{
int t,x,y;
while(~scanf("%d",&t))
{
int bj[MAXN];
memset(bj,0,sizeof(bj));
memset(a,0,sizeof(a));
for(int i=1;i<=t;i++)
{
scanf("%d%d",&x,&y);
bj[sum(x+1)]++;
add(x+1,1,t);
}
for(int i=0;i<=t-1;i++)
printf("%d\n",bj[i]);
}
return 0;
}
hdu(1541)(树状数组)
最新推荐文章于 2019-07-03 12:07:53 发布