Loading docs/graph/mdst.md→docs/graph/dmst.md +3 −3 Original line number Diff line number Diff line ## 最小树形图 有向图上的最小生成树(Minimum Directed Spanning Tree)称为最小树形图。 有向图上的最小生成树(Directed Minimum Spanning Tree)称为最小树形图。 常用的算法是朱刘算法(也称 Edmonds 算法),可以在 $O(nm)$ 时间内解决最小树形图问题。 Loading Loading @@ -58,7 +58,7 @@ bool solve() { } ``` ## Tarjan 的 MDST 算法 ## Tarjan 的 DMST 算法 Tarjan 提出了一种能够在 $O(m+n\log n)$ 时间内解决最小树形图问题的算法。 Loading @@ -80,7 +80,7 @@ Tarjan 的算法分为 **收缩** 与 **伸展** 两个过程。接下来先介 2. 如果 $b$ 被记录过了,就说明出现了环。总结点数加一,并将环上的所有结点重新编号,对堆进行合并,以及结点/超级结点的总权值的更新。更新权值操作就是将环上所有结点的入边都收集起来,并减去环上入边的边权。   以图片为例,左边的强连通图在收缩后就形成了右边的一棵收缩树,其中 $a$ 是结点 1 与结点 2 收缩后的超级结点, $b$ 是结点 3,结点 4,结点 5 收缩后的超级结点, $A$ 是两个超级结点 $a$ 与 $b$ 收缩后形成的。 Loading docs/graph/images/mdst1.png→docs/graph/images/dmst1.png (37.2 KiB) File moved. View file docs/graph/mod-shortest-path.md +1 −1 Original line number Diff line number Diff line 当出现形如“给定 $n$ 个整数,求这 m 个整数能拼凑出多少的其他整数( $n$ 个整数可以重复取)”,以及“给定 $n$ 个整数,求这 $n$ 个整数不能拼凑出的最小(最大)的整数”的问题时可以使用同余最短路的方法。 当出现形如“给定 $n$ 个整数,求这 $n$ 个整数能拼凑出多少的其他整数( $n$ 个整数可以重复取)”,以及“给定 $n$ 个整数,求这 $n$ 个整数不能拼凑出的最小(最大)的整数”的问题时可以使用同余最短路的方法。 同余最短路利用同余来构造一些状态,可以达到优化空间复杂度的目的。 Loading mkdocs.yml +1 −1 Original line number Diff line number Diff line Loading @@ -340,7 +340,7 @@ nav: - 拓扑排序: graph/topo.md - 最小生成树: graph/mst.md - 斯坦纳树: graph/steiner-tree.md - 最小树形图: graph/mdst.md - 最小树形图: graph/dmst.md - 最短路: graph/shortest-path.md - 拆点: graph/node.md - 差分约束: graph/diff-constraints.md Loading Loading
docs/graph/mdst.md→docs/graph/dmst.md +3 −3 Original line number Diff line number Diff line ## 最小树形图 有向图上的最小生成树(Minimum Directed Spanning Tree)称为最小树形图。 有向图上的最小生成树(Directed Minimum Spanning Tree)称为最小树形图。 常用的算法是朱刘算法(也称 Edmonds 算法),可以在 $O(nm)$ 时间内解决最小树形图问题。 Loading Loading @@ -58,7 +58,7 @@ bool solve() { } ``` ## Tarjan 的 MDST 算法 ## Tarjan 的 DMST 算法 Tarjan 提出了一种能够在 $O(m+n\log n)$ 时间内解决最小树形图问题的算法。 Loading @@ -80,7 +80,7 @@ Tarjan 的算法分为 **收缩** 与 **伸展** 两个过程。接下来先介 2. 如果 $b$ 被记录过了,就说明出现了环。总结点数加一,并将环上的所有结点重新编号,对堆进行合并,以及结点/超级结点的总权值的更新。更新权值操作就是将环上所有结点的入边都收集起来,并减去环上入边的边权。   以图片为例,左边的强连通图在收缩后就形成了右边的一棵收缩树,其中 $a$ 是结点 1 与结点 2 收缩后的超级结点, $b$ 是结点 3,结点 4,结点 5 收缩后的超级结点, $A$ 是两个超级结点 $a$ 与 $b$ 收缩后形成的。 Loading
docs/graph/mod-shortest-path.md +1 −1 Original line number Diff line number Diff line 当出现形如“给定 $n$ 个整数,求这 m 个整数能拼凑出多少的其他整数( $n$ 个整数可以重复取)”,以及“给定 $n$ 个整数,求这 $n$ 个整数不能拼凑出的最小(最大)的整数”的问题时可以使用同余最短路的方法。 当出现形如“给定 $n$ 个整数,求这 $n$ 个整数能拼凑出多少的其他整数( $n$ 个整数可以重复取)”,以及“给定 $n$ 个整数,求这 $n$ 个整数不能拼凑出的最小(最大)的整数”的问题时可以使用同余最短路的方法。 同余最短路利用同余来构造一些状态,可以达到优化空间复杂度的目的。 Loading
mkdocs.yml +1 −1 Original line number Diff line number Diff line Loading @@ -340,7 +340,7 @@ nav: - 拓扑排序: graph/topo.md - 最小生成树: graph/mst.md - 斯坦纳树: graph/steiner-tree.md - 最小树形图: graph/mdst.md - 最小树形图: graph/dmst.md - 最短路: graph/shortest-path.md - 拆点: graph/node.md - 差分约束: graph/diff-constraints.md Loading