1 条题解

  • 0
    @ 2025-8-24 21:14:08

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar MujicaSaki
    .

    搬运于2025-08-24 21:14:07,当前版本为作者最后更新于2022-08-21 13:15:00,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    拓扑排序的模板题。

    拓扑排序是一个有向无环图的所有顶点的线性序列。

    该序列需要满足每个顶点出现且只出现一次和如果有一条 AABB 的路径,在序列中 AA 出现在 BB 的前面。

    这道题目显然全部满足以上条件。如果不懂可以看下面样例的有向无环图。

    拓扑排序的步骤:

    • 计算每个点的入度。

    • 入度为 00 就加入队列。

    • 当队列不为空则循环:

      • 取出队首元素并输出。

      • 遍历队首元素的连边,对应节点的入度 1-1

      • 当对应的节点入度为 00 就加入队列。

    我们看样例的图,其中 1155 的入度分别为 2200221122。我们就把 22 号节点加入队列。队首现在不为空,所以我们取出 22 号节点,并且输出出来。这时候因为他没有祖先所以一定是现在辈分最大的所以输出出来。删除所有对应节点的入度之后我们会发现 44 号节点入度为 00。所以加入队列。然后取出队首 44 号节点并且输出。很明显他的祖先 22 号节点已经没了,所以 44 号节点已经没有辈分比他还大的了。按照上面的步骤我们就可以完成此道题目了。

    • 1

    信息

    ID
    7807
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者