最多能同时开几台
五个人、四台机器。每个人只会开其中几台,一台机器同时只能一个人用,一个人也只能占一台:
PEOPLE = ['阿岚', '小满', '阿泰', '南风', '北辰']
LIKE = {'阿岚': ['甲', '乙'], '小满': ['甲'], '阿泰': ['丙', '丁'],
'南风': ['丙'], '北辰': ['乙', '丁']}
PEOPLE = ['阿岚', '小满', '阿泰', '南风', '北辰']
LIKE = {'阿岚': ['甲', '乙'], '小满': ['甲'], '阿泰': ['丙', '丁'],
'南风': ['丙'], '北辰': ['乙', '丁']}
def hungarian(people, like):
m = {}
def aug(p, seen):
for t in like[p]:
if t in seen:
continue
seen.add(t)
if t not in m or aug(m[t], seen):
m[t] = p
return True
return False
n = 0
for p in people:
if aug(p, set()):
n += 1
return n
print(hungarian(PEOPLE, LIKE))
全部评论