萌新求助建虚树
查看原帖
萌新求助建虚树
455490
Sharpsmile楼主2022/7/11 15:23

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())));
    }
}
2022/7/11 15:23
加载中...