拓扑序相关

拓扑排序

概念:

  • DAG:有向无环图。

拓扑排序可以对一张DAG上的顶点排序。

流程:

  • 最初将入度为\(0\)的点加入队列。
  • 每次从队列中取出一个点,删去这个点的所有出边,将新产生的入度为\(0\)的点加入队列。这样按入队的先后顺序就把顶点排好序了。

\(O(n+m)\)

拓扑排序在后的点只依赖于拓扑排序在前面的点。所以在DAG上拓扑排序时可以DP。其实这也是DP的本质:在DAG上求最长/最短路。

拓扑排序可以判断原图中是否有环,是否是一条链。

拓扑排序有时得到的结果并不唯一,要求字典序最大/最小的,把队列换成优先队列即可。

过于简单,不放板子了。

实际应用

拓扑排序在很多算法中都会用到,不再多说。

实际问题中会出现拓扑序这种东西,有很好的性质。以后补。

posted @ 2024-12-23 10:59  RandomShuffle  阅读(19)  评论(0)    收藏  举报