萌新求助Tarjan
  • 板块灌水区
  • 楼主loser_qwq
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/11/9 13:10
  • 上次更新2024/11/9 15:17:02
查看原帖
萌新求助Tarjan
1124499
loser_qwq楼主2024/11/9 13:10
void Tarjan(int x){
    dfn[x]=low[x]=++tot;st[++top]=x;inst[x]=1;
    net(i,x)
        if(!dfn[I[i]]) Tarjan(I[i]),low[x]=min(low[x],low[I[i]]);
        else if(inst[I[i]]) low[x]=min(low[x],low[I[i]]);
    if(dfn[x]==low[x]){
        cnt++;int y=-1;
        while(y^x) y=st[top--],inst[y]=0,scc[y]=cnt,siz[cnt]++;
    }
}

我想问下

else if(inst[I[i]]) low[x]=min(low[x],dfn[I[i]]);

改成

else if(inst[I[i]]) low[x]=min(low[x],low[I[i]]);

行不行qnq

2024/11/9 13:10
加载中...