找出图中最大团的最小尺寸的程序(Python)

假设给定一张图,并要求我们找出图中最大团的最小尺寸。图的团是图的子集,其中每对顶点都是相邻的,即每对顶点之间都存在一条边。在多项式时间内不可能找到图中的最大团,因此给定小图的节点和边数,我们必须找出其中的最大团。

所以,如果输入像节点=4,边=4;那么输出将是2。

在上图中,集团的最大规模为 2。

示例

让我们看看以下实现以更好地理解 -

import math

def helper(x, y):

    ga = x % y

    gb = y - ga

    sa = x //y + 1

    sb = x //是的

    return ga * gb * sa * sb + ga * (ga - 1) * sa * sa //2 + gb * (gb - 1) * sb * sb //2

def solve(nodes, edges):

    i = 1

    j = nodes + 1

    while i + 1 < j:

        p = i + (j - i) //2

        k = helper(nodes, p)

        if k < edges:

            i = p

        else:

            j = p

    return j

print(solve(4, 4))

输入

4,4
输出结果
2

以上是 找出图中最大团的最小尺寸的程序(Python) 的全部内容, 来源链接: utcz.com/z/363241.html

回到顶部