Java 从n个服务员中选择k个以满足所有顾客

Java 从n个服务员中选择k个以满足所有顾客,java,c++,algorithm,graph-theory,matching,Java,C++,Algorithm,Graph Theory,Matching,假设有n个服务员和m个顾客。每个服务员可以为这些客户中的一个已知子集提供服务,这样每个客户至少可以由一个服务员提供服务(可能有重叠) 给定k(k

假设有n个服务员和m个顾客。每个服务员可以为这些客户中的一个已知子集提供服务,这样每个客户至少可以由一个服务员提供服务(可能有重叠)

给定k(k 如果有可能做出这样的选择,如何找到这些k服务员


我的第一个方法是根据他们能服务的顾客数量来订购服务生,首先是最大的,然后看看第一个k服务生是否能满足所有顾客。但这似乎不是最优的

你的帖子不是一个问题,堆栈溢出是为了回答与软件工程有关的问题,而不是一般的算法问题及其应用。@MartinMacak:这篇帖子是一个问题,如果算法是离题的,那么
算法
标签的存在肯定令人费解。对不起,我错过了,这是封面问题。不幸的是,它是NP难的,所以没有有效的(多项式时间)算法来解决它。我建议用谷歌搜索这个词来了解更多。谢谢@j_random_hacker!这很有帮助。只需要知道与此相关的一般问题的名称。