考虑我们有一个有n个顶点的完全图。每个顶点都有一个值。两个顶点i和j之间的边的权重等于value[i]异或value[j]。
问题是找到从顶点1到顶点n的路径,使路径中边的最大权重最小。我已经修改了Dijkstra算法,并找到了一个O(n ^ 2 lg(n))的算法。有人能帮我找到更有效的算法吗?
M
)确定的数字:value[1] XOR value[n]
。如果你找到两个节点A
和B
,使得节点1
和A
的M
及更高位相等,并且n
和B
的M
及更高位也相等,在A
和B
之间具有最小边权,则最小瓶颈路径为1-A-B-n(如果A=1和/或B=n,则可能更短)。A/B
对,请为所有节点值构建二进制trie,其中高位(M
及更高位)与节点1
重合。然后,对于所有高位与节点n
重合的节点值,请尝试在此trie中搜索这些值。如果没有找到精确匹配,则选择最深的部分匹配。