有向无环图中的最小路径覆盖
Posted
技术标签:
【中文标题】有向无环图中的最小路径覆盖【英文标题】:Minimum path cover in directed acyclic graph 【发布时间】:2012-05-28 10:56:17 【问题描述】:我在这里要问的问题已经在堆栈溢出中被问过了。 但我无法正确理解 Skiminok 发布的解决方案。
这里是Link .
我用给定的两个示例测试用例尝试了上面链接上发布的解决方案,但我无法得到正确的答案。
对于测试用例1::
N=3 和 K=2
5 4 7
DAG 将是::
注意:我已经构建了上述 DAG 考虑:
设 pi 和 pj 是两个不同的问题。然后我们将画一条从 pi 到 pj 的有向边当且仅当 pj 可以在同一天连续地在 pi 之后直接求解。即必须满足以下条件:
i
|vi - vj| >= K(评级要求)。
然后我构建了二分图考虑::
对于原始 DAG 的每条有向边 (u, v),应在二分图中添加一条无向边 (au, bv),其中 ai 和 bi 是大小为 n 的两个部分。
答案=上面二分图中的最大基数匹配。
上述二部图中的最大基数匹配=1(绿色egde)
但答案是 2。
类似的示例测试用例 2:
5 1
5 3 4 5 6
上图中的最大基数是 MORE THAN ONE,但正确答案是 1。
我认为我没有正确实现它,请你告诉我哪里出错了或者有没有其他方法
谢谢!
【问题讨论】:
【参考方案1】:我自己找到了答案, 第二天我发布了这个问题。
我的解决方案通过了所有测试用例。
我在最后一步犯了错误。 实际上答案/解决方案是 SET B 中不包含最大二分匹配边缘的顶点总数。
以示例测试用例 1 为例::
最大匹配 M=(1A,3B)。
最大匹配的边没有发生在两个顶点(顶点1和顶点2)上。所以答案等于这样的顶点数=2
对于测试用例 2::
最大匹配 M=(1A,2B),(2A,3B),(3A,4B),(4A,5B)。
最大匹配的边没有发生在一个顶点(顶点1)上。所以答案等于1
【讨论】:
以上是关于有向无环图中的最小路径覆盖的主要内容,如果未能解决你的问题,请参考以下文章