【发布时间】:2015-12-06 20:16:26
【问题描述】:
我不知道如何处理这个问题。
给定一个无向图,每条边都有红色或蓝色。如何在时间复杂度(O(m + n)log n)中找到包含尽可能少的红色边缘的最小生成树。其中m个顶点,n个边。
任何帮助将不胜感激。
【问题讨论】:
我不知道如何处理这个问题。
给定一个无向图,每条边都有红色或蓝色。如何在时间复杂度(O(m + n)log n)中找到包含尽可能少的红色边缘的最小生成树。其中m个顶点,n个边。
任何帮助将不胜感激。
【问题讨论】:
据我所知,我认为您已经回答了自己的问题。通过为边缘分配权重,红色权重 1 和蓝色权重 0,问题成为经典发现 minimum spanning tree,其时间复杂度为 O((m + n) log n)。
【讨论】:
首先找到所有最小生成树。然后计算每棵树的边缘并选择红色最少的树。这是关于修改用于查找最小生成树的算法,您应该能够找到示例。
如果我误解了这个问题并且目标是最小化红色边缘,以便找到的生成树可能不再是最小值:首先找到所有可能的生成树。然后选择红边最少的树。
【讨论】: