提供工作的最佳策略

时间:2019-10-15 09:33:02

标签: algorithm data-structures graph

最近,我在一次采访中遇到了这个问题: 经理想雇用员工。雇员接受报价时,至少有k个朋友接受报价。他应该为哪些具有最小规模的受雇者提供这份工作,以使最大数量的员工会接受这一提议。

如何解决这类问题?预先感谢。

1 个答案:

答案 0 :(得分:0)

假设雇主要从单个朋友圈中雇用N employee(每个人都是圈子中所有人的朋友)。

因此,对于每个数字i,从1到n,当i的朋友接受报价时,至少应该有i-1个人接受这份工作。否则,将出现死锁。

例如,假设N为5。

There should be at least 1 person accepting the job without any friend accepting it (k=0).
Similarly, 2 people with at most 1 friend accepting the job(k=1). 
3 people with at most 2 of their friends accepting the job (k=2).

否则,没人会接受评论中提到的僵局。

如果k是固定的,那么只有k==0@norok2一样的解决方案。