TL,DR:当增长一个MST时,在有许多轻量级边缘可供选择的情况下,如何选择一个特定的MST加入MST?带两种权重的MST-Kruskal算法
我有一个通用的问题,我一直试图解决整个一天,但阅读我的算法书&搜索网络并没有帮助我。我无法分享我的代码,因为这是一个大学项目,基本上是我错过的唯一场景。
想象下面的问题。
我有一个N边图,我想找到它的MST(典型问题)。然而,除了具有将顶点u连接到顶点v的代价的边缘之外,这些相同的顶点可以具有特殊的标记,使得它们可以连接到具有相同特殊标记的所有其他边缘。
我回答了这个问题,通过创建一个特殊的顶点,与该标志连接到的所有顶点,与相应的成本。
一切工作正常。当MST有许多可能的解决方案时会出现问题。我应该输出一个使用最少量的特殊标志连接。
我知道读者可能很难在看不到我的代码的情况下提出建议。但不幸的是,我真的无法分享。
我能说的就是我定义的边缘,无论它是特殊或不作为结构{U,V,成本}
有一件事我tryed,被新月顺序排序的边缘矢量按照标准kruskal算法的要求,但每当权重相同时,将“特殊边缘”的边缘向前推入矢量。
所以我会有这样的东西 [成本1正常,成本1正常,成本1特殊,成本2,成本3,成本3特殊,...]。
任何意识?
感谢您的意见。