在新加坡,今年(2016年)NOI(国家信息学奥林匹克运动会)包括以下问题“ROCKCLIMBING”(我在比赛期间无法解决这个问题。):
含糊不清的问题陈述
给定具有N <= 500
个顶点的DAG,找到原始顶点子集中的最大顶点数,使得从该集合中的1个顶点到同一个集合中的另一个顶点没有路径, 直接或间接。
解决方案
解决方案是使用传递闭包算法,然后通过复制每个顶点i
以形成i'
来形成二分图,这样如果可以从顶点{到达顶点j
{在原始图表中{1}} 直接或间接,然后在新图表中有i
到i
的有向边。
然而,在解决方案演示期间,演示者没有解释新的二分图的j'
(MCBM是最大基数二分匹配)的方式或原因也是最大的在原始DAG中无法直接或间接直接或间接的顶点集。
我查找了与DAG和二分图相关的其他问题,例如DAG上的最小路径覆盖问题,但我找不到任何可以解释这一点的问题。
有谁知道如何证明这种平等?
问题陈述可以在这里找到:ROCKCLIMBING
提前谢谢。
答案 0 :(得分:1)
这里有两件事:
当且仅当其补码是顶点覆盖时,该集是独立的(参见wikipedia)。这意味着最大独立集的大小等于最小顶点覆盖的大小。
在任何二分图中,最大匹配中的边数等于最小顶点覆盖中的顶点数。
因此,为了找到最大独立集的大小,我们首先计算最大匹配的大小MCBM,然后计算其补码等于N-MCBM
。
答案 1 :(得分:0)
另一种观点如下:
如果我们使用A<B
来表示我们可以从A爬到B,我们已经定义了partially ordered set
有一个名为Dilworth定理的结果表明无法比较的元素的最大数量等于链的最小数量
proof显示如何通过在二分图中构建最大匹配来构造最小数量的链。