POJ 2352 Stars
树状数组:注意,这种大数据的题,千万别作死用cin
我已经光荣的被T了一次了= =
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn=32005; int c[maxn],level[maxn],n; int lowbit(int x) { return x&(-x);//按位与运算 } int sum(int n)//计算前n项的和 { int sum=0; while(n>0) { sum+=c[n]; n-=lowbit(n); } return sum; } void add(int x) { while(x<maxn) { ++c[x]; x+=lowbit(x); } } int main() { int n,x,y; memset(level,0,sizeof(level)); memset(c,0,sizeof(c)); while(cin>>n){ for(int i=0;i<n;i++) { scanf("%d%d",&x,&y); ++x; level[sum(x)]++; add(x); } for(int i=0;i<n;i++) cout<<level[i]<<endl; } return 0; }