线段树和树状数组都可以用
#include <stdio.h>
#include <stdlib.h>

const int LEN = 15005;

//坐标处理
struct NODE
  {
int x; //X坐标
int y; //Y坐标
int addr; //第几个点
}node[LEN];

int cmp ( const void *a, const void *b )
  {

int ans = ( (NODE *)a )->x-( (NODE *)b )->x;
if ( !ans )
 {
ans = ( (NODE *)a )->y-( (NODE *)b )->y;
}
return ans;
}

//记录答案的数组
int answer[LEN];

//线段树
struct
  {
int num; //区间中点的个数
int b, e; //左右区间
int lson, rson; //左右孩子
}tree[LEN*25];
int next_tree;

void creat ( int b, int e ) //建树
  {

int p = next_tree;
next_tree ++;
tree[p].b = b;
tree[p].e = e;
tree[p].lson = -1;
tree[p].rson = -1;
tree[p].num = 0;

if ( b!=e )
 {
tree[p].lson = next_tree;
creat ( b, (b+e)/2 );

tree[p].rson = next_tree;
creat ( (b+e)/2+1, e );
}
}

void ins ( int p, int key ) //插入一个结点
  {

if ( tree[p].b==tree[p].e )
 {
tree[p].num ++;
}
else
 {
int mid = ( tree[p].b+tree[p].e )/2;
if ( key>mid )
 {
ins ( tree[p].rson, key );
}
else
 {
ins ( tree[p].lson, key );
}
tree[p].num = tree[ tree[p].lson ].num+tree[ tree[p].rson ].num;
}
}

int ser ( int p, int key ) //查找函数
  {

if ( tree[p].b==tree[p].e )
 {
return tree[p].num;
}
else
 {
int mid = ( tree[p].b+tree[p].e )/2;
if ( key>mid )
 {
return tree[ tree[p].lson ].num + ser ( tree[p].rson, key );
}
else
 {
return ser ( tree[p].lson, key );
}
}
}

void work ( int n, int max ) //主要的工作函数
  {

next_tree = 0;
for ( int i=0; i<n; i++ )
 {
answer[i] = 0;
}

qsort ( node, n, sizeof ( NODE ), cmp );
creat ( 0, max );
for ( int i=0; i<n; i++ )
 {
int addr = ser ( 0, node[i].y );
answer[addr] ++ ;
ins ( 0, node[i].y );
}
}

int main ()
  {

int n;
int max = -1;;
scanf ( "%d", &n );
for ( int i=0; i<n; i++ )
 {
scanf ( "%d%d", &node[i].x, &node[i].y );
node[i].addr = i;
if ( node[i].y>max )
 {
max = node[i].y;
}
}

work ( n, max );
for ( int i=0; i<n; i++ )
 {
printf ( "%d\n", answer[i] );
}
}

|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 |
|
公告
决定从线程开始!!
常用链接
留言簿(6)
随笔档案
搜索
最新评论

阅读排行榜
评论排行榜
|
|