假设我们有N个工作和K名工人来完成这些工作。但是对于某些工作,我们需要两名员工,而对于其他工作,我们只需要一名员工。此外,员工不能做所有的工作。例如,工人1可以做1、2和5号工作,但不能做3和4号工作。另外,如果我们雇用工人1来做工作1,则希望他也可以做2和5号工作,因为我们已经支付了他的报酬。
例如,假设我们有5个工作和6名工人。对于工作1、2和4,我们需要2个人,而对于工作3和5,我们只需要一名员工。以下是每个工人可以做的工作以及他所需的工资清单。
例如,假设我们有5个工作和6名工人。对于工作1、2和4,我们需要2个人,而对于工作3和5,我们只需要一名员工。以下是每个工人可以做的工作以及他所需的工资清单。
Worker 1 can do jobs 1,3,5 and he requires 1000 dollars.
Worker 2 can do jobs 1,5 and he requires 2000 dollars.
Worker 3 can do jobs 1,2 and he requires 1500 dollars.
Worker 4 can do jobs 2,4 and he requires 2500 dollars.
Worker 5 can do jobs 4,5 and he requires 1500 dollars.
Worker 6 can do jobs 3,5 and he requires 1000 dollars.
经过简单的计算和逻辑思考,我们可以得出我们需要雇佣1、3、4、5号工人,这意味着我们需要支付的最低工资是:1000+1500+2500+1500=5500美元。
但是如何找到一个高效的算法来输出这个金额呢?这让我想起了匈牙利算法,但所有这些额外的限制条件使我无法应用它。