关于Tarjan求割点
  • 板块学术版
  • 楼主许多
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/3 20:22
  • 上次更新2024/11/3 23:29:21
查看原帖
关于Tarjan求割点
230825
许多楼主2024/11/3 20:22

RT

他在更新low的时候一定要判断下一个点是否是父节点吗?为什么?为啥我洛谷板子题没判断也过了

void tarjan(int now,int root){
    dfn[now]=low[now]=++dfn[0];
    vis[now]=1;
    for(int i=head[now];i!=-1;i=b[i].next){
        if(!dfn[b[i].to]){
            son[now]++;
            tarjan(b[i].to,root);
            low[now]=min(low[now],low[b[i].to]);
            if(low[b[i].to]>=dfn[now]&&now!=root)g[now]=1;
        }
        else //if(b[i].to!=fa[now])
            low[now]=min(low[now],dfn[b[i].to]);

    }
    vis[now]=0;
}
2024/11/3 20:22
加载中...