当前位置: 首页 > 知识库问答 >
问题:

确定给定的加权图是否有唯一的MST

牟飞沉
2023-03-14

我在找一个算法(或者其他什么方法)来确定一个给定的加权图在O(ElogV)中是否有唯一的MST(最小生成树)?

我对体重一无所知(如体重(e1)!= weight(e2)),如果该图只有一个唯一的MST,则算法返回True,否则返回False。

我首先使用 Kruskal 的算法,并检查 find-set(u)==find-set(v) 是否因此在 MST 中有一个圆圈,但这种方式并没有涵盖我认为的所有场景:(

非常感谢!托莫。

共有1个答案

徐高韵
2023-03-14

您可以在O(E log(V))中证明它是否具有唯一的MST。

首先使用标准技术找到最小生成树。

返回原始树,用数字对替换所有权重,即原始权重,然后根据其是否在MST中,将其替换为0或1。这些数字对可以成对相加,也可以成对比较——就像普通数字一样。

现在使用标准技术找到具有这些有趣权重的最小生成树。您找到的 MST 将是与原始树共享最少边的 MST。因此,如果有多个 MST,您可以保证找到不同的 MST。

 类似资料:
  • 问题内容: 雇员表具有ID和NAME列。名称可以重复。我想找出是否至少有一个名称类似“ kaushik%”的行。 因此查询应返回true / false或1/0。 是否可以使用单个查询找到它。如果我们尝试类似 在这种情况下,它不会返回true / false。另外,我们正在遍历表中的所有记录。简单SQL中是否存在这样的方式,使得每当获取满足条件的第一条记录时,它都应停止检查其他记录。还是只能在Pl

  • 问题内容: 我有一个要运行验证的SQLAlchemy模型。验证的一部分是确保(少数)列上存在UniqueConstraint。我知道列是什么。使用SQLAlchemy可以做到这一点吗?我正在使用的基础数据库是MySQL。 问题答案: 您可以使用SQLalchemy反射API。 为了获得唯一约束,请发出get_unique_constraints。 主键是唯一的,因此您也必须发出get_pk_con

  • 我使用数据表来存储数据。我试图弄清楚每行中的某些列是否是唯一的。我想在data.table中添加一列,如果有重复值,该列将保存值“重复值”,如果没有重复值,该列将为NA。我要检查重复的列名存储在一个字符向量中。例如,我创建了我的数据表: 我还有另一个变量,指示需要检查哪些列是否重复。重要的是,我能够将列名存储在字符向量中,而不需要“知道”它们(因为它们将作为参数传递给函数)。 我希望输出是: 如果

  • 汤姆教他的学生求一个数的阶乘。他想测试学生的理解力。为此,他提供了一个数字。他希望学生们告诉他这个数是哪个数的阶乘。 示例:如果Tom提供的数字为120,学生应该回答为5,因为5!=120。 通过编写一个程序来帮助学生做到这一点。请注意,输入应该是一个大于零的数字。如果输入小于或等于零,则输出应该是“无效输入”。此外,如果提供的输入不完全是一个数字的阶乘,例如,提供的输入是122,这不是一个数字的

  • 问题内容: 我对位向量如何实现此功能感到困惑(对位向量不太熟悉)。这是给出的代码。有人可以引导我完成这个吗? 特别是,这是怎么做的? 问题答案: 在这里用作位存储。整数值中的每个位都可以视为一个标志,因此最终是一个位数组(标志)。代码中的每一位都说明是否在字符串中找到带有位索引的字符。您可以出于相同的原因而不是使用位向量。它们之间有两个区别: 大小 。具有固定大小,通常为4个字节,这意味着8 *

  • 我正在使用C++和OpenCV制作一个函数,它将检测图像中像素的颜色,确定它在什么颜色范围内,并用通用颜色替换它。例如,绿色可以从深绿色到浅绿色,程序将确定它仍然是绿色,并将其替换为简单的绿色,使输出图像看起来非常简单。所有的东西都被设置好了,但是我很难定义每个范围的特性,我很好奇是否有人知道或者有一个公式,给定BGR值,可以确定像素的整体颜色。如果不是,我就得做很多实验,自己做,但如果有东西已经