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