求助,一个点不敏明白
查看原帖
求助,一个点不敏明白
231946
CuSO4_and_5H2O楼主2022/7/6 10:25
void tarjan(int u,int mr){
    int rc=0;
    dfn[u]=low[u]=++cnt;
    for (int p=head[u];p;p=nxt[p]){
        int v=a[p];
        if (!dfn[v]){
            tarjan(v,mr);
            low[u]=min(low[u],low[v]);
        if(low[v]>=dfn[u]&&u!=mr) cut[u]=true;
            if (u==mr) rc++;
        }
        low[u]=min(low[u],dfn[v]);
    }    
    if (u==mr&&rc>=2) cut[mr]=true;
}

里边的

if(low[v]>=dfn[u]&&u!=mr) cut[u]=true;

为什么放到if(!dfn[v])外边就错了

2022/7/6 10:25
加载中...