动态规划法例题

第一个空,用手工计算,可以用贪心法

先选择价值最大的物品,有两个价值是6的物品,重量合计2+4=6

剩余4个空间,只能放重量为2的物品,一共是6+6+3=15

第二个空,需要将所有物品都放进背包舱室,假定物品数量为n,背包空间为w,时间浮渣度是O(nw)

第三个空

部分背包使用归并排序,手工计算,先计算出各个物品1个重量的价值

分别是3,1.5,5/6,0.8,1.5.

首先选择单位价值最大的,单位价值是3的物品。重量是2

接着选择单位价值次大的,单位价值是1.5,重量分别是2和4,一共占用了2+2+4=8

剩下两个重量,选择单位价值是5/6的,总价值是=2*3+2*1.5+2*1.5+2*5/6=16.67

第四个空

每次计算各个物品的单位价值时间复杂度是O(logn)

每个物品都放背包里,时间复杂度是O(n)

时间复杂度是O(nlogn)

相关推荐
2401_891482178 分钟前
C++代码复杂性分析
开发语言·c++·算法
keep intensify9 分钟前
单词搜索-
算法·深度优先
zx_zx_1239 分钟前
定长滑动窗口和不定长滑动窗口
数据结构·算法
mjhcsp16 分钟前
C++ 梯度下降法(Gradient Descent):数值优化的核心迭代算法
开发语言·c++·算法
yunyun3212323 分钟前
跨语言调用C++接口
开发语言·c++·算法
m0_5180194826 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
xushichao198933 分钟前
高性能密码学库
开发语言·c++·算法
m0_5180194835 分钟前
C++代码混淆与保护
开发语言·c++·算法
m0_5698814738 分钟前
C++中的智能指针详解
开发语言·c++·算法
blackicexs41 分钟前
第九周第三天
算法