码迷,mamicode.com
首页 > 其他好文 > 详细

[学习笔记]tarjan求割边

时间:2016-11-10 01:39:34      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:top   code   .com   学习   border   更新   强连通   int   font   

上午打模拟赛的时候想出了第三题题解,可是我不会技术分享求割边只能暴力判割边了QAQ

所以,本文介绍技术分享求割边(又称桥).

技术分享的定义同技术分享求有向图强连通分量.

枚举当前点技术分享的所有邻接点技术分享:

1.如果某个邻接点技术分享未被访问过,则访问技术分享,并在回溯后更新技术分享

2.如果某个邻接点技术分享已被访问过,则更新技术分享

对于当前节点技术分享,如果邻接点中存在一点技术分享满足技术分享(技术分享向上无法到达技术分享技术分享祖先)说明技术分享为一条割边.

inline void tarjan(int u,int fa){
    dfn[u]=low[u]=++cnt;
    for(int i=g[u];i;i=e[i].nxt)
        if(!dfn[e[i].to]){
            tarjan(e[i].to,u);
            low[u]=min(low[u],low[e[i].to]);
            if(low[e[i].to]>dfn[u]) cut[e[i].n]=true; 
        }
        else if(e[i].to!=fa)
            low[u]=min(low[u],dfn[e[i].to]);
}

[学习笔记]tarjan求割边

标签:top   code   .com   学习   border   更新   强连通   int   font   

原文地址:http://www.cnblogs.com/AireenYe/p/6049061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!