检查我们是否可以选择不同颜色的k球的算法

时间:2018-02-28 14:19:44

标签: algorithm

我们有n个不同颜色的盒子和球。每个容器中都有几个球。我们可以从每个盒子中选出最多一个球。

我们可以收集不同颜色的k球吗? 注意:每个容器最多只有一个颜色的球。

示例:

假设我们有5个容器和4种不同颜色A,B,C,D

Box1 - A, D
Box2 - C,B
Box3 - D, A
Box4 - D
Box5 - D

在这里你不能从这些盒子中选择4个颜色A,B,C,D的球。条件是你可以从每个盒子里只选一个球。

1 个答案:

答案 0 :(得分:6)

这是一个匹配问题。

从二分图开始,其顶点是球和盒子的颜色,其边缘是关系"这个球在那个框中#34;。您想构建最大匹配。如果最大匹配包括球的每种颜色,则答案为是,否则为否。

使用标准算法在二分图中构建最大匹配。 Ford–Fulkerson algorithm将很容易实现。但Hopcroft–Karp algorithm会跑得更快。