码迷,mamicode.com
首页 > 其他好文 > 详细

北京培训记day5

时间:2016-12-17 13:49:05      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:merge   重建   treap   else   nod   持久化   平衡   数据结构   play   

高级数据结构

一、左偏树&斜堆

  合并,插入,删除

  打标记

struct Node { int fa,l,r,w,dep } tree[Mx];
int Merge(int k1,int k2)//返回值为根节点
{
    if(k1==0||k2==0) return k1+k2;
    if(k1.val<k2.val) swap(k1,k2);
    tree[k1].r=Merge(tree[k1].r,k2);
    tree[tree[k1].r].fa=k1;
    if(tree[tree[k1].l].dep<tree[tree[k1].r].dep) swap(tree[k1].l,tree[k1].r);
    if(tree[k1].r==0) tree[k1].dep=0;
    else tree[k1].dep=tree[tree[k1].r].dep+1;
    return k1;
}

二、线段树

  建树,修改,查询,lazy标记

  主席树,可持久化线段树

  //zkw线段树

  例:bzoj1146

    bzoj2653

三、平衡树

  旋转:splay

     treap

       笛卡尔树

       后缀平衡树

  重建:替罪羊树

四、树套树

  线段树套线段树

  线段树套平衡树 (区间第k小)

  树状数组套主席树

  替罪羊树套主席树

  分裂合并:FHQ treap

北京培训记day5

标签:merge   重建   treap   else   nod   持久化   平衡   数据结构   play   

原文地址:http://www.cnblogs.com/xiaoxubi/p/6189486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!