标签: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