为什么LCA为当前栈顶时,新加的点不用入栈啊?QWQ
(注释部分是错的)
inline void insert(int x){
if(tp==1){st[++tp]=x;return;}
int lca=LCA(st[tp],x);
if(st[tp]==lca)return;
while(tp>1&&dfn[st[tp-1]]>=dfn[lca]){ee[st[tp-1]].push_back(st[tp]);tp--;}
if(st[tp]!=lca){ee[lca].push_back(st[tp]);st[tp]=lca;}
st[++tp]=x;
}