图论

dfs 树

无向图 dfs 树上只存在树边和返祖边。

若存在横叉边,则横叉边一定在 dfs 时被优先访问,与它是横叉边不符。

用于无向图 Tarjan 算法的证明及部分构造题。

无向图连通性

  • 割点:删去后使连通分量个数增加的节点;
  • 割边(桥):删去后使连通分量个数增加的边。

割点和割边都定义在无向图上。

无重边时,\(n\le 2\) 的无向连通图无割点,但 \(n=2\) 的无向连通图有割边。

  • 割点:

    • 对应点双连通图,定义为不存在割点无向连通图。
    • 无向图的极大点双连通子图称为点双连通分量(V-BCC)
  • 割边:

    • 对应边双连通图,定义为不存在割边无向连通图。
    • 无向图的极大边双连通子图称为边双连通分量(E-BCC)
  • 孤立点是点双连通图,也是边双连通图;

  • 一条边连接的点对是点双连通图,但不是边双连通图

一张图是边双连通图的充要条件是每条边都属于至少一个简单环

  • 充分性:删去一条边后,不会影响环上点的可达性,图仍然连通。
  • 必要性:若一条边 \((u,v)\) 不在任意简单环上,删去这条边后,\(u\) 不可达 \(v\),图不再连通。

性质

  • 点双连通分量:
    • 点双不具有传递性
    • 一个节点可能在多个点双中;
    • 缩点时,将节点与所在的点双连边,得到一棵圆方树)。
  • 边双连通分量:
    • 边双具有传递性
    • 一个节点只会在一个边双中;
    • 缩点时,将有连边节点所在的边双连边,得到一棵

求解割点(Tarjan 算法)

\(u\) 为割点,当且仅当存在 \(v\in {\rm subtree}(u)\)\({\rm subtree}(v)\) 内节点不经过 \(u\),无法访问到 \(\mathcal{T}\setminus ({\rm subtree}(v)\cup \{u\})\)

通过维护 \(\rm low\) 判断,\(u\) 是割点的充要条件为:

\[\sum_{v\in {\rm son}(u)}[{\rm dfn}(u)\le {\rm low}(v)]-[u={\rm root}(\mathcal{T})]\ge 1 \]

证明略。

求解割边(Tarjan 算法)

一条边为割边的必要条件为它是树边。

树边 \((u,v)\) 为割边,当且仅当 \({\rm subtree}(v)\) 内节点不经过 \((u,v)\),无法访问到 \(\mathcal{T}\setminus {\rm subtree}(v)\)

通过维护 \(\rm low\) 判断,\((u,v)\) 是割边的充要条件为:

\[{\rm dfn}(u)<{\rm low}(v) \]

证明略。

考虑重边,dfs 时需要记录来源边的编号。

求解点双连通分量

圆方树

求解边双连通分量

dfs 时维护一个栈,遇到割边 \((u,v)\) 时,栈顶到 \(v\) 的所有节点构成一个边双。

证明略。

有向图连通性

  • 有向图 \(\mathcal{G}\) 中,若 \(u,v(u\ne v)\) 互达,则称 \(u,v\)强连通的,他们之间有强连通性
  • \(\mathcal{G}\) 中任意两点都是强连通的,则 \(\mathcal{G}\) 是强连通图。
  • \(\mathcal{G}\) 的极大强连通子图称为强连通分量。

性质

  • 强连通性具有传递性
  • 强连通分量缩点后得到一张有向无环图

求解强连通分量

TODO...

圆方树

TODO...

posted @ 2023-03-07 19:11  jrjyy  阅读(120)  评论(0)    收藏  举报