如果你用的 FHQFHQFHQ,且调了好久都有问题,不妨看看你的 mergemergemerge 函数合并的顺序有没有问题!!!
int merge(int x,int y){ if(!x||!y)return x+y; if(tr[x].rd<tr[y].rd){ tr[y].p[0]=merge(x,tr[y].p[0]); //tr[y].p[0]=merge(tr[y].p[0],x);会寄 pushup(y); return y; } tr[x].p[1]=merge(tr[x].p[1],y); //tr[x].p[1]=merge(y,tr[x].p[1]);会寄 pushup(x); return x; }