题解 | #[NOIP2001]装箱问题#

[NOIP2001]装箱问题

http://www.nowcoder.com/practice/55100a6608ad4656849dbd1f16d044cb

经典的0/1背包问题,与大家重温。

def ZeroOnePack(v, V):
    n = len(v)
    dp = [[0 for _ in range(V+1)] for _ in range(n+1)]
    
    for i in range(1, n+1):
        for j in range(1, V+1):
            if j >= v[i-1]:
                dp[i][j] = max(dp[i-1][j], dp[i-1][j-v[i-1]]+v[i-1])
            else:
                dp[i][j] = dp[i-1][j]
    
    return V - dp[-1][-1]


V = int(input())
n = int(input())
v = []
for _ in range(n):
    v.append(int(input()))

print(ZeroOnePack(v, V))
全部评论

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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