解题思路:
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 人评分
C二级辅导-计负均正 (C语言代码)浏览:658 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:572 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:946 |
母牛的故事 (C语言代码)浏览:1428 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:474 |
1642题解浏览:716 |
回文数字 (C语言代码)浏览:2510 |
1071题解浏览:493 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:548 |
简单的a+b (C语言代码)浏览:416 |