struct Leftist_Tree{
int lson[N];
int rson[N];
int root[N];
int dis[N];
int siz[N];
long long mullazy[N];
long long addlazy[N];
struct message{
int fa,val;
}a[N];
void pushnow(long long x,long long mul,long long add){
if(!x)
return;
a[x].val*=mul;
a[x].val+=add;
mullazy[x]*=mul;
addlazy[x]*=mul;
addlazy[x]+=add;
}
void pushdown(long long A){
pushnow(lson[A],mullazy[A],addlazy[A]);
pushnow(rson[A],mullazy[A],addlazy[A]);
mullazy[A]=1;
addlazy[A]=0;
}
void Build_Heap(int idx){
siz[idx]=1;
root[idx]=idx;
}
int merge(int A,int B){
if(!A||!B){
return A+B;
}
// pushdown(A);
// pushdown(B);
if(a[A].val<a[B].val){
swap(A,B);
}
rson[A]=merge(rson[A],B);
if(dis[lson[A]]<dis[rson[A]]){
swap(lson[A],rson[A]);
}
dis[A]=dis[rson[A]]+1;
return A;
}
};
转载于:https://www.cnblogs.com/Leo-JAM/p/10079298.html