有限条边连接图的问题

写过一点C++ 2018-09-17 11:23:20
各位大神,有一个问题,在一个图中,12个点,每两点之间都存在连接,每条边都有权重(已固定),现在要求选其中16条边,并且权重最大,而且要求连通(即每个顶点都连接到整个网络中,只生成一个图网络)。请问怎么选择,我想的是用最小生成树的思想先把图连通,再从剩余边中选出最大的前五条边连起来,这样总感觉不对劲,或者这样是正确的,那么如何证明呢?
...全文
607 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_adintr_com 2018-09-18
  • 打赏
  • 举报
回复
引用 2 楼 Scaramouch_ 的回复:
[quote=引用 1 楼 adlay 的回复:] 方法一: 如果剩余的边数量 > 剩余未选到的点的数量: 从所有剩余边中选择最大的 否则: 从剩余的点关联的边上选择一条最大的 方法二: 1. 对每一个点, 选择一条和它相连的边种最大的一条 2. 去除重复的边 3. 剩余的按从大到小选取即可
方法二的话 ,这样有可能没有构成一个连通的图[/quote] 嗯, 确实是有这个可能, 看下这样: 1. 初始化已选边为空, 已选的点为空 2. 选择一条最长的边加入到已选的边中, 这条边的两个点加入到已选的点中. 3. 从剩余边中筛选出连接 已选的点 和 剩余的点 的边, 并从中选择最长的一条边出来 4. 将选择的边加入到已选边中, 将这条边上的点加入到已选的点中 5. 重复 3, 4 步, 直到剩余的点为空 6. 从剩余的边中从大到小选择 这样应该可以保证每一次选择出来的边都能和已选择的边构成一个连通图
www_adintr_com 2018-09-17
  • 打赏
  • 举报
回复
方法一: 如果剩余的边数量 > 剩余未选到的点的数量: 从所有剩余边中选择最大的 否则: 从剩余的点关联的边上选择一条最大的 方法二: 1. 对每一个点, 选择一条和它相连的边种最大的一条 2. 去除重复的边 3. 剩余的按从大到小选取即可
写过一点C++ 2018-09-17
  • 打赏
  • 举报
回复
引用 1 楼 adlay 的回复:
方法一: 如果剩余的边数量 > 剩余未选到的点的数量: 从所有剩余边中选择最大的 否则: 从剩余的点关联的边上选择一条最大的 方法二: 1. 对每一个点, 选择一条和它相连的边种最大的一条 2. 去除重复的边 3. 剩余的按从大到小选取即可
方法二的话 ,这样有可能没有构成一个连通的图

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧