我的分配就像,给定图表G中与E条道路相连的V个村庄,每条道路都标有正数。而且您至少必须在此级别上才能访问此路。换句话说,如果道路标记为5,则您的等级必须至少为5或更高才能访问该道路。现在我的任务要求设计年鉴,找到能够从其他任何地方到达V的任何村庄所需的最小通关水平。因此,我的解释是我们只能在图形中找到最大权重边。但是我还没有弄清楚哪种算法适合这种情况。
答案 0 :(得分:1)
这可以在O(E)
中解决。
为什么您的解决方案是错误的?考虑一个三角形,其中两个边为1,最后一个边为2,所需的最小间隙为1,您的解决方案为2。
我能想到的解决方案是创建Minimum bottleneck spanning tree(MBST),而不是采用最大边缘,这将是您的许可等级。
为什么会起作用?好吧,这棵树的最大边缘是您可以获得的最小边缘(最小瓶颈),并且仍然可以到达图形中的任何地方(跨越)。
MBST
可以使用分而治之方法created in O(E)
,而不是遍历该树中的所有边缘以找到最大值为O(E)
。总共O(E)
。
您可以使用简单的MST
来解决它,因为任何MST
都是MBST
(proof in q3),但这需要O(E log V)
或{{1 }},具体取决于算法(Kruskal或Prim)。