首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加权无向二分图在一个分区中连接所有节点的最小代价

加权无向二分图在一个分区中连接所有节点的最小代价
EN

Stack Overflow用户
提问于 2022-03-30 09:08:01
回答 1查看 198关注 0票数 0

给定分区A和B之间的加权无向二分图,我试图找到连接分区A中所有节点的最小代价。

似乎我需要首先找到整个图的最小生成树(MST),然后排除不必要的边(因为我不需要连接B分区中的节点)。我认为从MST中删除分区B中的节点,其程度为1(只连接到A分区的一个节点),但在某些情况下,这种方法给出了次优的结果。

希望有人能帮我这个忙。

输入格式:

  • 第一行是分区A和B的N和M大小(1 < N,M<1000)
  • 其次是N的成本矩阵,第1行和第j列的值将是将Ai连接到Bj

的成本。

输出格式:

  • 连接

中所有节点的最小成本

样本输入:

代码语言:javascript
复制
3 4
1 2 3 7
1 3 1 2
3 4 1 7

样本输出:

代码语言:javascript
复制
4

解释:

  • 将A1连接到B1,A2连接到B1,A2连接到B3,A3连接到B3。
EN

回答 1

Stack Overflow用户

发布于 2022-03-31 07:20:32

分区:AB

节点:mn (m,n< 1000)

我们正在尝试连接A中的所有节点

步骤1:创建A-节点对的详尽列表,连接它们需要最低成本。这将是(最大) mC2 = m * (m-1) / 2元素长列表。对于文章中的示例,如下所示:

代码语言:javascript
复制
[(A1,A2,2), (A1,A3,4), (A2,A3,2)]

这本质上是一个新的图,它的节点只来自A和相应的边权。实现这一点的最简单的方法是O(m^2 * n)

步骤2: --这将成为您的加权图,您可以应用MST逻辑得到您的最终答案,即O(m^2)解决方案(因为边数、~m^2、节点数、节点数、=m)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71674466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档