🥹含泪总结周赛中的两道「图」问题

6134. 找到离给定两个节点最近的节点

6135. 图中的最长环

 

本周周赛后两题都是和「图」有关的,其中一个是「最短路径」问题,另一个是「环」问题

找到离给定两个节点最近的节点

题目详情可见 找到离给定两个节点最近的节点

首先看到这个题目,可以想到求出node1node2到其它所有点的最短距离,然后遍历可选择的「中间点」。所以现在的问题就是如何求出其它点到起点的最短路径

「最短路径」算法有 最短路径-Dijkstra无权值最短路径算法(BFS)

对于本题,每条边的权重均为 1,所以可以看作为无权值,我们使用上述的第二种方法「无权值最短路径算法(BFS)」

由于点与点之间最多只有一条边,所以可以简化「无权值最短路径算法(BFS)」

下面给出详细代码:

图中的最长环

题目详情可见 图中的最长环

关于「拓扑排序」的详细介绍可见 环检测 & 拓扑排序

先利用「拓扑排序」,找出所有不在环中的节点,那么剩余的节点全在环中

2

如图,会把点12删去,留下两个环中的点

下面给出详细代码: