动态规划法例题

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

先选择价值最大的物品,有两个价值是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)

相关推荐
LYS_06188 分钟前
寒假学习(7)(C语言7+模数电7)
c语言·学习·算法
砚边数影13 分钟前
逻辑回归实战(二):Java + DL4J 实现模型,评估指标(准确率/召回率)计算
java·数据库·算法·机器学习·逻辑回归·金仓数据库
Cher ~13 分钟前
【数据结构】hash表(unordered_map)
java·数据结构·c++·算法·哈希算法
一起养小猫14 分钟前
Flutter for OpenHarmony 实战:食物生成算法与难度递增系统
算法·flutter
u01092727122 分钟前
自定义类型转换机制
开发语言·c++·算法
hetao173383722 分钟前
2026-01-27 hetao1733837 的刷题笔记
c++·笔记·算法
Tisfy34 分钟前
LeetCode 3650.边反转的最小路径总成本:Dijkstra算法
算法·leetcode··dijkstra·题解·迪杰斯特拉
2401_8384725136 分钟前
自定义操作符重载指南
开发语言·c++·算法
鹿角片ljp42 分钟前
力扣136.只出现一次的数字-异或和HashMap
java·数据结构·算法·leetcode
W_a_i_T42 分钟前
【Coding日记】菜鸟编程C语言100例——第三题⚠️
c语言·开发语言·经验分享·算法·菜鸟编程