小工具知识网

当前位置: 首页 > 行业知识 > 算法-数学与简单DP-0-1背包问题

行业知识

算法-数学与简单DP-0-1背包问题

2026-11-14 19:49:17 来源:互联网转载

题目

��� N件物品和一个容量是 V的背包。每件物品只能使用一次。

()

第 i件物品的体积是 vi,价值是 wi。

求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。

()

输出最大价值。

输入格式

第一行两个整数,N,V用空格隔开,分别表示物品数量和背包容积。

接下来有 N行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。

输出格式

输出一个整数,表示最大价值。

数据范围

0=v[i] : # 含i的情况可能不存在 f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i])print(f[n][m])

 一维优化:

n,m=map(int,input().split())f = [0 for _ in range(1010)] # 如果不是写成1010的话,会显示list out of range的报错v=[0]w=[0]for i in range(1,n+1):    x,y=map(int,input().split())    v.append(x)    w.append(y)for i in range(1,n+1):    for j in range(m,v[i]-1,-1):            f[j]=max(f[j],f[j-v[i]]+w[i])print(f[m])

AcWing 2. 01背包问题(状态转移方程讲解) - AcWing

上一篇:怎么建造服务器地图?

下一篇:淘宝订单源码深度解析,揭秘订单处理系统的奥秘!