首页 > 代码库 > [模板]左偏树
[模板]左偏树
可并堆
可以支持合并的堆.
/*大根堆*/struct heap{ int l,r,w;}h[N];int rt[N];//第i个堆的根的下标 /*合并以x,y为根的堆*/inline int merge(int x,int y){ int t; //其中一个堆为空 if(!x||!y) return x+y; //使得x,y两个根中x大 if(h[x].w<h[y].w){ int t=x;x=y;y=t; } //保持堆两边的平衡 h[x].r=merge(y,h[x].r); t=h[x].l;h[x].l=h[x].r;h[x].r=t; return x;}inline int pop(int x){ int l=h[x].l,r=h[x].r; h[x].l=h[x].r=h[x].w=0; return merge(l,r);}inline int top(x){ return h[x].w; }
[模板]左偏树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。