【发布时间】:2021-08-22 12:46:08
【问题描述】:
我正在处理一个编码问题,其中给您一个无向、未加权的图、一个起点和一个您必须访问的点列表。该图有 n 个节点和 n-1 条边。如何找到从节点 1 开始、经过列表中的所有点并在节点 1 结束的路径的最短距离。允许多次通过同一节点/边。
输入: 第一行:整数 n 表示总共有多少个节点(编号 1-n),然后整数 k 表示有多少必须访问的节点。 第二行:k 个整数,表示必须访问的节点 下一行:表示它们之间有一条边的整数对
输出:描述的最短路径长度
示例: 在: 5 2 4 5 1 2 2 3 2 4 1 5
输出: 6
我正在考虑找到节点 1 和所有必须访问的节点之间的最短路径(例如使用 Djikstra),但我不确定从那里去哪里。 Python 代码将不胜感激。
【问题讨论】:
-
网上有吗?数量有限制吗?
-
如果图存在哈密顿圈,则最优解就是它,因此最优解似乎揭示了图是否包含哈密顿圈,这本身就是一个具有挑战性的问题。
-
可以,总节点数和必访节点数都可以达到100000
标签: python algorithm graph-theory