【问题标题】:Minimum Vertex Cover of Tree树的最小顶点覆盖
【发布时间】:2016-07-21 12:30:43
【问题描述】:

目标 - 找到一棵树的最小涡流覆盖。 给定一个未加权的无向树,找到它的最小涡旋覆盖。在检查了 Graph 是否为二分图并且还制作了 2 组顶点之后,这 2 组中的最小值是否返回了最小覆盖。 如果是,以下代码中的错误似乎是什么?相同的代码在 Codeforces 竞赛中成功通过了下面提到的问题,但是如果将其用于上述 Spoj 问题(根据输入稍作修改),它将给出一个 WA。

是的,在 Spoj 上提交时,输出格式发生了明显变化。

Codeforces 问题以检查是否为 Bipartite。

http://www.codeforces.com/problemset/problem/688/C

我的提交

enter code herehttp://ideone.com/PwduxV

关于 spoj 的问题,以找到最小覆盖。

http://www.spoj.com/problems/PT07X/

【问题讨论】:

  • 请详细说明问题。问题完全不同;正如您所描述的那样,SPOJ 问题在某种意义上是“容易的”,即生成 2 种着色(由于树是二分的而存在)并返回较小的颜色类。然而,Codeforces 问题要求生成任意图的 2 个不相交的顶点覆盖,这显然甚至不能保证存在(从 3 个顶点上的完整图可以看出)。
  • Codeforces 想要的是检查图形是否是二分的,如果是,则打印 2 个不相交的集合。对于 spoj,由于我们得到了一棵树,因此可以确保存在二分法。因此,仅像在 Codeforces 中那样找出 2 套并打印尺寸较小的那一套,这还不够正确吗?
  • 这很有见地;您的意思是在 Codeforces 公式中,两个顶点覆盖将是分区,这将证明输入是二分的?如果是这样,标题NP-hard 问题具有高度误导性。

标签: algorithm graph tree


【解决方案1】:

无向树总是二分的,但不能保证其中一组是最小覆盖。

考虑简单的图表:

1-3
2-3
3-4
4-5
4-6

最小覆盖是{3,4},但你可以把它分成二分集{1,2,4},{3,5,6}

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2021-10-26
    相关资源
    最近更新 更多