RT
现在虚树建出来所有需要的点都在是没错,但是祖先和后代的关系会有锅。。。。有没有大佬给康康,对了很多种实现都觉得我这个很对(之前求助全沉了
LMN是个边权计算(大佬萌只需要帮我康康虚树构造的部分就行,谢谢各位辣(
inline void bd(vector<int>D){
sort(D.begin(),D.end(),cmp);
stack<int>s;
s.push(1);
for(int u:D){
int LC=LCA(u,s.top());
int v=s.top();
s.pop();
while(!s.empty()&&dfn[LC]<dfn[v]){
exg[s.top()].push_back(mp(v,LMN(v,s.top())));
v=s.top();
s.pop();
}
s.push(v);
if(dfn[LC]>dfn[v])s.push(LC);
s.push(u);
}
while(s.size()>=2){
int x=s.top();
s.pop();
exg[s.top()].push_back(mp(x,LMN(x,s.top())));
}
}