警示后人
查看原帖
警示后人
636977
CC__DIAMOND楼主2024/7/19 19:17

在修改两节点间路径时不应该是

while(top[x]!=top[y]) {
            if(dep[top[x]]>dep[top[y]]) swap(x,y);
            vals.add(dfn[top[y]],dfn[y],v);
            y=fa[top[y]];
        }
        if(dep[top[x]]>dep[top[y]) swap(x,y);
        vals.add(dfn[x],dfn[y],v);

而应该是

while(top[x]!=top[y]) {
            if(dep[top[x]]>dep[top[y]]) swap(x,y);
            vals.add(dfn[top[y]],dfn[y],v);
            y=fa[top[y]];
        }
        if(dep[x]>dep[y]) swap(x,y);
        vals.add(dfn[x],dfn[y],v);
2024/7/19 19:17
加载中...