标签:des style blog http color os io strong
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 32475 | Accepted: 14186 |
Description
Input
Output
Sample Input
5 1 1 5 1 7 1 3 3 5 5
Sample Output
1 2 1 1 0
Hint
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #define init(a) memset(a,0,sizeof(a)) using namespace std; #define MAX INT_MAX #define MIN INT_MIN #define LL __int64 #define lson l , m , rt << 1 #define rson m + 1 , r , rt << 1 | 1 const int maxn = 50010; struct node { int left,right; int num; // }T[4*maxn]; int hash[maxn]; int L[maxn]; int ans=0,M; void Creat(int left,int right,int id)//建树 { T[id].left =left; T[id].right =right; T[id].num =0; if(T[id].left ==T[id].right ) return ; Creat(left,(left+right)/2,2*id); Creat((left+right)/2+1,right,2*id+1); } void UPdata(int id,int i,int j)//单点更新 { if(T[id].left<=i&&T[id].right >=i) T[id].num ++; if(T[id].left ==T[id].right ) return; if(i>T[id].right ) return; if(i<T[id].left ) return; int mid=(T[id].left +T[id].right )/2; if(i<=mid) UPdata(id*2,i,j); else UPdata(id*2+1,i,j); } void query(int id,int l,int r)//区间&&单点查询 { int mid=(T[id].left +T[id].right)/2; if(T[id].left ==l&&T[id].right ==r) { ans+=T[id].num ; return; } if(r<=mid) query(2*id,l,r); else if(l>mid) query(2*id+1,l,r); else { query(2*id,l,mid); query(2*id+1,mid+1,r); } } int main() { int n,r; while(scanf("%d",&n)!=EOF) { M = 0; for(int i=0;i<n;i++) { scanf("%d%d",&L[i],&r); if(L[i]>M) M = L[i]; } Creat(0,M,1); for(int i = 0;i<n;i++) { ans = 0; query(1,0,L[i]); hash[ans]++; UPdata(1,L[i],1); } for(int i = 0;i<n;i++) printf("%d\n",hash[i]); } return 0; }
POJ 2352 Stars(线段树),布布扣,bubuko.com
标签:des style blog http color os io strong
原文地址:http://blog.csdn.net/wjw0130/article/details/38554367