gpt4 book ai didi

c++ - 具有共享边界的最小连接区域的图论算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:22 24 4
gpt4 key购买 nike

我有多个“动物笔”的加权图,每支笔至少有 3 个边/点和至少两支笔。我必须计算出要移除的最小加权边缘,以便连接所有笔(您也可以通过移除未连接到其他笔的外边缘来连接它们)。

有人可以推荐一种算法或过程,我可以用它来找到要移除的最小加权墙。我在考虑 Prim 的算法,但我什至不完全确定如何应用它。

这是 http://cemc.math.uwaterloo.ca/contests/computing/2010/stage1/seniorEn.pdf 上的问题 S4

我不想要答案只是关于如何处理它的一些方向

最佳答案

你的方向是正确的。

将您的问题建模为无向图 G=(V,E) 其中 V = { all pens }, E = { (u,v) | u 和 v 之间有一堵墙 w((u,v)) = u 和 v 之间的墙成本

为了“连接所有笔”——您实际上是在寻找一个子图:G'=(V,E') 这样子图 G'将被连接[每两个节点之间有一条路径],并且E'中的墙成本最小。

要以最低成本获得它 - 您正在寻找 Minimum Spanning Tree . [很容易看出您确实需要一棵树——因为创建树后的任何额外边都是多余的,可以在不损害图形连通性的情况下将其删除——或者在问题术语中——你可以恢复一面墙,而笔将保持联系]

可以让您获得 MST 的两种可能算法是 PrimKruskal

关于c++ - 具有共享边界的最小连接区域的图论算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9415843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com