4

我正在准备考试,但我遇到了这个问题:

我们有n支球队互相比赛两次。每场比赛都以平局结束。获胜最多的团队被宣布为获胜者(可以多于一个)。设计一个算法,给定一些初始的比赛结果,检查某支球队是否仍有机会成为本次锦标赛的获胜者。

我不知道如何接近。问题被归入“流量和匹配”类别,但我不明白这怎么可能是最大流量问题。

4

1 回答 1

4

假设我们希望 A 队获胜。

显然,如果 A 赢得所有比赛是最好的,所以这给了我们一个目标分数。我们现在可以计算每个其他团队必须遭受的损失数量才能使 A 总体获胜。

问题是我们只能从剩下的每场比赛中获得最多 1 名失败者。所以我们需要弄清楚如何将球队与比赛进行匹配,每场比赛对应于在特定比赛中输掉的特定球队。

这基本上是在团队和游戏之间的二分图上匹配,但我们也可以通过额外的源和汇节点以最大流量来解决它。

  1. 为每个团队创建一个源节点,其容量等于该团队必须拥有的损失数量。
  2. 使每支球队在涉及该球队的每场剩余比赛中占据优势(容量无限)
  3. 从每个剩余的游戏到接收节点的边缘,其容量等于该游戏要玩的次数。(即如果 B 对 C 游戏仍要进行,则容量为 2)

然后,如果您可以构建一个从源到汇的有效流并达到容量(在每个源到团队边缘),您已经证明团队 A 仍然有可能获胜。

于 2016-06-15T19:21:36.620 回答