关于建立圆方树的问题

洛谷本题建立圆方树的时候为什么不用保证不去走已经走过的路?(见tarjang函数)
98分代码:https://www.luogu.com.cn/record/113026941
100分代码:https://www.luogu.com.cn/record/113028525

建立圆方树是为了解决旅行商问题(TSP)的一种方法,它将问题转化为寻找最短路径的问题,并通过树的结构来表示路径。在建立圆方树时,我们需要确保树的每个节点都代表一条有效的路径,并且每个节点都包含该路径上所有城市的信息。

在建立圆方树时,为什么不需要保证不去走已经走过的路呢?这是因为圆方树的建立是为了找到最短路径,而不是为了确保不走重复的路。在TSP问题中,由于我们要回到起点,所以实际上无法避免走过相同的路径。因此,建立圆方树时不需要考虑避免重复路径的问题,只需要确保树的每个节点都代表一条有效的路径即可。

当然,在实际应用中,如果需要避免重复路径,可以在建立圆方树时添加额外的约束条件来实现。但是在一般情况下,圆方树的建立不需要考虑避免重复路径的问题。

  • 以下回答由chatgpt基于相关博客总结生成:

    由于本人不是洛谷网的用户,无法查看建立圆方树这道题的具体情况。但是根据参考资料提供的 tarjan 算法代码和描述,可以得出 tarjan 算法求解强连通分量的过程中,并没有保证不走已经走过的路,这是因为 tarjan 算法本身就是一种深度优先搜索算法,搜索过程自然会走过已经走过的路径。tarjan 算法求解强连通分量的关键在于判断是否形成一个强连通分量,这主要通过判断 dfn[u] 是否等于 low[u] 实现,即达到了强连通分量的“最顶点”,这个过程不需要关心走过的路径。