最多能同时开几台

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

五个人、四台机器。每个人只会开其中几台,一台机器同时只能一个人用,一个人也只能占一台

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))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论