题解 | #点菜问题#

点菜问题

https://www.nowcoder.com/practice/b44f5be34a9143aa84c478d79401e22a

def best(c, p, v, n):
    dp = [0]*(c+1)
    dp[0] = 0
    for i in range(0, n):
        for j in range(c, p[i]-1, -1):
            dp[j] = max(dp[j], dp[j-p[i]] + v[i])
    print(dp[c])

while True:
    try:
        price = []
        vi = []
        c, n = map(int, input().split())
        for i in range(n):
                p, v = map(int, input().split())
                price.append(p)
                vi.append(v)
        best(c, price, vi, n)
    except:
        break

全部评论

相关推荐

07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务