左偏树模板

struct tree
{
	int l,r,w,d;
}t[N];
int merge(int k1,int k2)
{
	if(k1==0||k2==0)return k1+k2;
	if(t[k1].w>t[k2].w)swap(k1,k2);
	t[k1].r=merge(t[k1].r,k2);
	if(t[t[k1].l].d<t[t[k1].r].d)swap(t[k1].l,t[k1].r);
	t[k1].d=t[t[k1].r].d+1;
	return k1;
}

  

posted @ 2018-02-09 11:20  mybing  阅读(122)  评论(0编辑  收藏  举报