解题思路:
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语言代码)浏览:1397 |
局部变量作函数返回值的问题浏览:963 |
C二级辅导-同因查找 (C语言代码)浏览:563 |
简单的事情 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:539 |
C二级辅导-温度转换 (C语言代码)浏览:540 |
统计立方数 (C语言代码)浏览:862 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1258 |
三角形 (C语言代码)浏览:653 |
龟兔赛跑预测 (C++代码)浏览:1179 |