社区讨论

Why?

CF487ETourists参与者 6已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@mi7pphre
此快照首次捕获于
2025/11/21 01:35
4 个月前
此快照最后确认于
2025/11/21 01:35
4 个月前
查看原帖
CPP
void tarjan(int x){
    dfn[x]=low[x]=++idx;stk[++top]=x;
    for(int i=head[x];i;i=e[i].next){
        int to=e[i].to;
        if(!dfn[to]){
            tarjan(to),low[x]=min(low[to],low[x]);
            if(low[to]>=dfn[x]){
                ++scnt;while(stk[top]!=x){
                    int tmp=stk[top--];
                    Add(tmp,scnt),Add(scnt,tmp);
                }Add(x,scnt),Add(scnt,x);
            }
        }else low[x]=min(dfn[to],low[x]);
    }
}
WA on 37
CPP
void tarjan(int x){
    dfn[x]=low[x]=++idx;stk[++top]=x;
    for(int i=head[x];i;i=e[i].next){
        int to=e[i].to;
        if(!dfn[to]){
            tarjan(to),low[x]=min(low[to],low[x]);
            if(low[to]>=dfn[x]){
                ++scnt;
                do{
                    int tmp=stk[top];
                    Add(tmp,scnt),Add(scnt,tmp);
                }while(stk[top--]!=to);
                Add(x,scnt),Add(scnt,x);
            }
        }else low[x]=min(dfn[to],low[x]);
    }
}
AC
但是这不是等价写法吗....

回复

10 条回复,欢迎继续交流。

正在加载回复...