我在这里要问的问题在堆栈溢出之前已经被问过了。但我无法正确理解Skiminok发布的解决方案。
这是链接。
我用给定的两个示例测试用例尝试了上面链接上发布的解决方案,但我无法得到正确的答案。
对于测试用例 1::
N=3 和 K=2
5 4 7
DAG 将是:
注意:我已经构建了上述 DAG 考虑:
设 pi 和 pj 是两个不同的问题。然后我们将画一条从 pi 到 pj 的有向边当且仅当 pj 可以在同一天连续地在 pi 之后直接求解。即,必须满足以下条件:
i < j,因为你应该更早地解决不太困难的问题。
|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。
我认为我没有正确实施它,请你告诉我在哪里犯了错误或者是否有任何其他方法
谢谢!