用线段树解pku2352--西电

用线段树解pku2352--西电

ID:42705578

大小:148.50 KB

页数:4页

时间:2019-09-20

用线段树解pku2352--西电_第1页
用线段树解pku2352--西电_第2页
用线段树解pku2352--西电_第3页
用线段树解pku2352--西电_第4页
资源描述:

《用线段树解pku2352--西电》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include #include 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 )    {   

2、     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_tr

3、ee;    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 ( (

4、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 );     

5、   }        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;    }

6、    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 );        }    }}vo

7、id work ( int n, int max ) //主要的工作函数{    next_tree = 0;    for ( int i=0; i

8、i].y );        answer[addr] ++ ;        ins ( 0, node[i].y );    }}int main (){    int n;    int max = -1;;    scanf ( "%d", &n );    for ( int i=0; i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。