解题思路:
    01背包问题,从后往前更新。

参考代码:

n,m = map(int,input().split())
dp = [0 for _ in range(n+1)]
for i in range(m):
    wi,vi = map(int,input().split())
    for j in range(n,wi-1,-1):
        dp[j] = max(dp[j-wi]+vi,dp[j])
print(dp[n])


 

0.0分

10 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区