题解 | #点菜问题#

点菜问题

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

while True:
    try:
        m, n = map(int, input().split(" "))
        w = [0 for i in range(n)]  # 钱大小
        v = [0 for i in range(n)]  # 分数
        dp = [0 for i in range(m + 1)]
        for i in range(n):
            w[i], v[i] = map(int, input().split(" "))
        for i in range(n):
            for j in range(m, w[i] - 1, -1):
                dp[j] = max(dp[j], dp[j - w[i]] + v[i])
        print(dp.pop())
    except:
        break

全部评论

相关推荐

08-01 11:19
电气工程师
我懒羊羊觉得没问题:写的太学生化了,像作文一样,很难看出你和岗位的匹配度
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-11 10:14
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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