【问题标题】:find minimum bottleneck path in a graph在图中找到最小瓶颈路径
【发布时间】:2013-06-26 16:53:26
【问题描述】:

假设我们有一个包含 n 个顶点的完整图。每个顶点都有一个值。两个顶点 i 和 j 之间的边的权重等于 value[i] xor value[j]。
问题是找到一条从顶点 1 到顶点 n 的路径,该路径中边的最大权重最小。我已经修改了 Dijkstra 的算法,发现了一个 O(n ^ 2 lg(n)) 的算法。有人可以帮我找到更有效的算法吗?

【问题讨论】:

  • 你的意思是 O(n * log n) 吗?还是 O(n^(log n))?
  • @templatetypedef 我认为他的意思是 O(n * n * logn)?

标签: algorithm graph


【解决方案1】:

最小瓶颈值不能小于由该值的最高有效位 (M) 确定的数字:value[1] XOR value[n]。如果您找到两个节点AB,使得M 和节点1A 的更高位相等以及M 和节点的更高位n 和@ 987654330@,在AB 之间具有最小边权重,最小瓶颈路径将是 1-ABn(或者如果 A=1 和/或 B=n,它可能会更短)。

要选择具有最小边权重的A/B 对,请为具有与节点1 重合的高位(M 和更高位)的所有节点值构造一个二叉树。然后对于所有高位与节点n一致的节点值,尝试在这个trie中搜索这些值。如果没有找到完全匹配,选择最深的部分匹配。

时间复杂度为 O(n * M)。

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多