题解 | #[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))
全部评论

相关推荐

Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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