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