标签:des style blog http color os io strong for
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 32652 | Accepted: 14263 |
Description
Input
Output
Sample Input
5 1 1 5 1 7 1 3 3 5 5
Sample Output
1 2 1 1 0
Hint
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <algorithm> 5 #include <string.h> 6 using namespace std; 7 struct st{ 8 int value; 9 }root[32005*4]; 10 int level[32005*2]; 11 void build(int rt,int l,int r) 12 { 13 int mid; 14 if (l==r) {root[rt].value=0;return ;} 15 mid=(l+r)/2; 16 build(2*rt,l,mid); 17 build(2*rt+1,mid+1,r); 18 root[rt].value=root[rt*2].value+root[rt*2+1].value; 19 } 20 int query(int rt,int l,int r,int left,int x) 21 { 22 int mid; 23 if (left==l&&r==x)return root[rt].value; 24 mid=(l+r)/2; 25 if (x<=mid){ 26 return query(rt*2,l,mid,left,x); 27 } 28 if (left>mid){ 29 return query(rt*2+1,mid+1,r,left,x); 30 } 31 return (query(rt*2,l,mid,left,mid)+query(rt*2+1,mid+1,r,mid+1,x)); 32 } 33 void updata(int rt,int l,int r,int x) 34 { 35 int mid; 36 if (l==r){root[rt].value++;return;} 37 mid=(l+r)/2; 38 if (x>mid){ 39 updata(rt*2+1,mid+1,r,x); 40 }else { 41 updata(rt*2,l,mid,x); 42 } 43 root[rt].value=root[rt*2].value+root[rt*2+1].value; 44 } 45 int main() 46 { 47 int n,x,y,sum,maxx=32005,i; 48 scanf("%d",&n); 49 for (i=0;i<n;i++){ 50 level[i]=0; 51 } 52 build(1,0,maxx); 53 for (i=0;i<n;i++){ 54 scanf("%d%d",&x,&y); 55 sum=query(1,0,maxx,0,x); 56 level[sum]++; 57 updata(1,0,maxx,x); 58 } 59 for (i=0;i<n;i++){ 60 printf("%d\n",level[i]); 61 } 62 return 0; 63 }
标签:des style blog http color os io strong for
原文地址:http://www.cnblogs.com/nwpuzzh/p/3929962.html