1 条题解
-
1
#include<bits/stdc++.h> using namespace std; int n,t[1000010]; struct a { int x,y; }; a g[1000010]; long long c[1000010]; int lowbit(int x){return x&(-x);} bool cmp(a x,a y) { if(x.x==y.x)return x.y<y.y; else return x.x<y.x; } void update(int pos,int x){ for(int i=pos;i<=32001;i+=lowbit(i))c[i]+=x; } long long sum(int a) { long long tot=0; for(int i=a;i>0;i-=lowbit(i))tot+=c[i]; return tot; } long long sum1(int a,int b){ return sum(b)-sum(a-1); } int main() { cin>>n; for(int i=1;i<=n;i++) { scanf("%d%d",&g[i].x,&g[i].y); g[i].y++; } sort(g+1,g+n+1,cmp); for(int i=1;i<=n;i++) { t[sum(g[i].y)]++; update(g[i].y,1); } for(int i=0;i<n;i++) cout<<t[i]<<"\n"; return 0; }
- 1
信息
- ID
- 768
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 33
- 已通过
- 9
- 上传者