给定条件下图的最大颜色数量

问题描述 投票:0回答:1

您获得了一个带有N个彩色节点的图;每个节点可以是其他节点,并且节点也可以指向自己。如果两个节点1和2指向相同的节点3,则节点1和2将具有相同的颜色。找到节点按字母顺序排列的最小颜色分配,以使图形中的颜色数量最大化。最大时间复杂度为O(NlogN)

我已经取得了一些进展;我一直在想一种可行的方法是将指向另一个节点的任何两个节点压缩到一个节点中,并继续进行直到所有节点完全压缩为止,但是我不确定如何分析时间复杂度,或者不确定甚至可以最大化颜色数量。

algorithm data-structures graph-algorithm
1个回答
0
投票

另一种说法:

如果两个节点1和2指向相同的节点3,则节点1和2将具有相同的颜色。

是:

如果一个节点有两个或多个邻居,那么它的所有邻居都将具有相同的颜色。

遵循该规则,创建一个不相交的集合数据结构,并为每个节点设置一个集合,然后合并应该具有相同颜色的集合。请参阅:https://en.wikipedia.org/wiki/Disjoint-set_data_structure

然后提取结果集,并对每个结果套用一种独特的颜色。我不确定您所说的“按字母顺序排列的最小分配”是什么意思,但不管它是什么,都应该很容易。

© www.soinside.com 2019 - 2024. All rights reserved.