【问题标题】:Matching and Perfect Math匹配和完美数学
【发布时间】:2013-04-20 17:25:51
【问题描述】:

来自 Skiena 的书中,这不是硬件,只是我为面试做的准备。

鉴于这个问题,

无向图 G = (V, E) 的匹配是一组边,其中没有两条边有共同的顶点。完美匹配是所有顶点都匹配的匹配。

(a) 构造一个具有 2n 个顶点和 n^2 条边的图 G,使得 G 具有指数级的完美匹配。

(b) 构造一个具有 2n 个顶点和 n^2 条边的图 G,使得 G 恰好有一个唯一的完美匹配。

我只是不知道如何开始。对于a,我选择了n = 3,所以我现在知道我有6个顶点和9条边,并尝试将它们连接起来,但我不知道它是否完美匹配。

【问题讨论】:

  • 无向图不能有n^2条边; n^2 是你写 n2 时的意思吗?一个集团有 (n^2-n)/2 条边。那么这一定是在谈论多重图。另外,(a) 中完美匹配的数量应该是指数的,在什么变量中?
  • @G.Bach 我的意思是 N^2,它说要构建一个有 2n 条边和 n^2 条边的图
  • 那时肯定是在讨论非简单图,而且可能是多重图,因为即使是具有自环的完整有向图也只有 n^2 条边。
  • @G.Bach 它没有指定,我发布的是问题所在,我无法解决。
  • @G.Bach:顶点的数量是你想象的两倍。

标签: java c algorithm graph


【解决方案1】:
  1. 对于 a):在 2n 个顶点上取一个完整的二分图,两个分区各有 n 个顶点。这些图有 n!完美匹配,当 n > 2 时大于 2^n。
  2. 对于 b):我们在 (n,n) 个顶点上构建类似于完整二分图的东西。调用分区 A=(1,2,3,...,n) 和 B=(n+1,n+2,n+3,...2n)。

    让 A 成为一个集团。

    对于 B 中的每个顶点 n+i,为 A 中的每个顶点 j 添加一条边 (n+i,j),其中 j

    这迫使唯一的完美匹配是 {e in E | e = (n+i,i) for some i in [1;n]} (尝试证明这一点以练习归纳)。

    由于 A 是 n 个顶点上的团,它有 n^2/2 - n/2 条边。 A 和 B 之间的边总共是 sum from 1 to n,即 n^2/2 + n/2,所以我们一起得到
    n^2/2 - n/2 + n^2/2 + n /2 = n^2 条边。

【讨论】:

    【解决方案2】:

    这个图表可能会帮助你(a):

    V={1,2,a,b}

    E={(1,a),(1,b),(2,a),(2,b)}

    2*2 个顶点

    2^2 条边

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      相关资源
      最近更新 更多