二分匹配算法设计..儿童服装

时间:2015-12-12 01:17:20

标签: java algorithm bipartite

假设您是幼儿园老师,您需要让您的孩子穿着打扮去外面玩。每个孩子都需要帽子,连指手套和大衣。每个孩子都喜欢他们想穿的衣服。

我们有n个孩子,一顶帽子,一双手套和一件外套。对于每个孩子,我们都有一系列可接受的帽子,连指手套和外套。设计一种算法,以确定是否有可能让每个孩子都戴上帽子,连指手套和大衣。

所以这个问题很明显是一个二分匹配问题。我知道可以通过附加源和接收器来解决二分图,创建权重1的边缘并解决典型的最大流量问题。

我很难掌握如何解决这个问题,知道这些事情。我认为每一对(儿童,帽子),(儿童,连指手套),(儿童,外套)都是他们自己独立的二分图。就我迄今为止所取得的一切而言,任何提示或推动正确的方向都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

由于帽子,连指手套和外套之间没有关系,您可以安全地为(children,hats)(children.mittens)(children,coats)运行三个单独的二分匹配。那么你的解决方案将是这三个中的最小值。因此,如果这些中的最小值等于孩子的总数,则可以为所有孩子着装。