左偏树(模板)
2016-12-10 21:10
176 查看
#include <iostream> #include<cstdio> #define MAX 1010 using namespace std; int tot=0; int v[MAX],l[MAX],r[MAX],d[MAX]; int merge(int x,int y) { if(x==0) return y; if(y==0) return x;//如果有一个子树是空 if(v[x]<v[y]) swap(x,y);//取较大的根节点权值 r[x]=merge(r[x],y);//将B合并入A的右子树 if(d[l[x]]<d[r[x]]) swap(l[x],r[x]);//维护左偏性质 d[x]=d[r[x]]+1;//更新距离。 return x; } int init(int x) //新建 { v[++tot]=x; l[tot]=r[tot]=d[tot]=0; return tot; } int insert(int x,int y)//新插入一个节点—先建一棵左偏树,再合并。 { merge(x,init(y)); } int pop(int x)//删除堆顶元素。 { return merge(l[x],r[x]); }
相关文章推荐
- [Luogu3377]【模板】左偏树(可并堆)
- 模板 可并堆【洛谷P3377】 【模板】左偏树(可并堆)
- 洛谷3377【【模板】左偏树】--左偏树&并查集
- 左偏树模板
- ZOJ2334 Monkey King 【左偏树模板题】
- luogu3377【模板】左偏树(可并堆)
- luoguP3377 【模板】左偏树(可并堆)
- 左偏树模板及题目推荐
- 【洛谷P3377】【模板】左偏树(可并堆)
- 算法模板——左偏树(可并堆)
- HDU 1512 Monkey King(左偏树模板题)
- 模板:左偏树
- COGS 526 又是一道模板题——左偏树
- 左偏树(可并堆)详解及有关模板
- 洛谷.3377.[模板]左偏树(可并堆)
- HDU - 3031 To Be Or Not To Be (左偏树模板)
- 【洛谷】3377【模板】左偏树(可并堆)
- 带模板的左偏树
- 【模板】左偏树 (模板题:洛谷P3377左偏树/可并堆)
- 斜堆——【模板】左偏树(可并堆)