同样的东西,能切开就不一样了

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

还是这三件、还是装 10,但这次可以切开按比例拿(切下来那部分的价值按 价值 * 剩余容量 // 重量 算,保证整除)。运行下面这段程序:

def knap_frac(items, cap):
    v = 0
    for w, val in sorted(items, key=lambda it: it[1] / it[0], reverse=True):
        if w <= cap:
            cap -= w
            v += val
        else:
            v += val * cap // w
            cap = 0
            break
    return v

print(knap_frac([(6, 30), (5, 20), (5, 20)], 10))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论