$QwQ$因为$gql$的$tarjan$一直很差所以一直想着要写个学习笔记,,,咕了$inf$天之后终于还是写了嘻嘻.

首先说下几个重要数组的基本定义.

$dfn$太简单了不说$QwQ$

但是因为有向图无向图的$low$定义不一样,,,所以我我我我区分下两个$low$的定义,$QAQ$

有向图中的$low[x]:$在栈中且$x$的子树能到达的点.的$dfn$最小值

无向图中的$low[x]:$能通过一条不在搜索树上的边与$x$的子树中的点联通的点.的$dfn$最小值.

首先了解下$tarjan$的核心代码趴$QwQ$

if(x是y搜索树上的父亲)low[x]=min(low[x],low[y])

else low[x]=min(low[x],dfn[y])

不难理解?考虑$low_x$的定义是$x$及$x$的子树中能追溯到的$dfn$最小值.所以当$y$在$x$子树内时可以直接用$low$更新,否则就只能用$dfn$更新.

然后说下$tarjan$的几个基本应用

无向图割边

无向边$(x,y)$是桥,当且仅当搜索树上存在$x$的一个子节点$y$,满足$dfn[x]<low[y]$.

正确性显然不说.

注意因为这里的条件是小于号所以在更新$low[x]=min(low[x],dfn[y])$的时候要保证$y$不是$x$的父亲.

但是还有个要注意的在于如果有重边就不需要保证$y$不是$x$的父亲了,$QwQ$

这里解决办法是判断边$(x,y)$是不是就是和当前扩展到点$x$的边成对存在的边,用类似网络流的搞下就成.

板子 $code$

无向图割点

若$x$不是根,则$x$是割点当且仅当搜索树上存在$x$的一个节点$y$满足$dfn_x\leq low_y$

若$x$是根,则$x$是割点当且仅当搜索树上存在两个像上面那样的点$y$

因为这里的条件是等号所以就不需要像前面那样还判些乱七八糟的东西辣$QwQ$

板子 $code$

无向图点双

和求割点类似,用个栈存着当前所有访问到的点,当有$dfn_x\leq low_y$的时候缩到一个点双中.

注意点双的定义与强联通分量不一样$QAQ$,就说点双是指的不存在割点的极大联通图.强联通分量是指的任意两点互相可达的极大联通图.

板子 $code$

无向图边双

和强联通分量求法是一样的,只是因为是无向边所以要注意别跑回父亲了,$over$

板子 $code$

有向图强联通分量

若在$x$回溯前有$dfn_x=low_x$,则栈中从$x$到栈顶的所有节点构成一个强联通分量.

板子 $code$

一个小变式 $code$

有向图必经点&有向图必经边

$QwQ$要用到支配树,,,?

告辞:)

随机推荐

  1. @atcoder - AGC035F@ Two Histograms

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个 N*M 的方格,我们通过以下步骤往里面填数: (1)将 ...

  2. Laravel / PHP 扩展包视频教程

    https://laravel-china.org/courses/laravel-package 每周精选两个以上扩展包进行讲解,涵盖 PHP 和 Laravel 相关的最新.最热.最常用的扩展包. ...

  3. zip解决杨辉三角问题

    杨辉三角原型: / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ 实现: a = [1] while True: print(a) ...

  4. H3C 分组交换连接模型

  5. 洛谷 1131 [ZJOI2007] 时态同步

    题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...

  6. HDU2087 剪花布条 题解 KMP算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 题目大意:给定字符串 \(s\) 和 \(t\) ,找出 \(s\) 中出现不重叠的 \(t\) ...

  7. 第三次脱发——Scurm学(ctrl)习(C)心得

    Scrum 学习心得: 首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想.它可以指导我们更加高效的开发. 其次,敏捷开发都具有以下共同的特征: 迭代式开发 增量交付 开发团队和用户反馈推动 ...

  8. 【原生JS】进阶最后一个编程篇(与之前的选项卡不同的做法)

    完成效果图: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  9. Clipboard 自动复制功能,ios复制失败,换方案 user-select: text ;长按复制 (ios 兼容,长按复制)

    Clipboard 自动复制功能,嵌套app内跳转的页面,ios 自动复制失败(该ios机子,微信,浏览器打开复制没有问题) 暂时换方案    user-select: text ;长按复制 (ios ...

  10. 2009年NOIP普及组复赛题解

    题目涉及算法: 多项式输出:模拟: 分数线划定:模拟.排序: 细胞分裂:质因数分解: 道路游戏:动态规划. 多项式输出 题目链接:https://www.luogu.org/problem/P1067 ...