第15周_动态规划_01背包问题_作业

【状态:    内部  已结束
开始时间: 2025-06-05 08:00:00
  
结束时间: 2025-06-09 00:00:00
  
服务器时间:

简介

比赛名称: 第15周_动态规划_01背包问题_作业

比赛类型: 内部(受邀或输入密码才能参赛)

比赛状态: 已结束

比赛时间: 开始于 2025-06-05 08:00:00,至 2025-06-09 00:00:00结束。

公告

本次OJ评测的主要目的是检验考生对动态规划中的关于01背包问题的应用,主要内容如下:

1. 基本模型

(1)问题描述:给定 n 个物品,第 i 项物品体积为 w[i],价值为 c[i],背包容量为 m。每物品最多选一次,求不超容量的最大总价值。

(2)状态定义

- 二维数组:dp[i][j] 表示前 i 个物品在容量 j 时的最大价值。

- 一维数组:dp[j] 表示容量 j 时的最大价值(空间优化)。

(3)状态转移方程:dp[j]=max(dp[j],dp[j−w[i]]+c[i])(j≥w[i])

2. 常见变种问题与处理方法

(1)恰好装满背包:初始化 dp[0] = 0,其余为负无穷(保证只有恰好装满的可行解被更新)。    

(2)求方案总数:状态记录组合数dp[j] += dp[j - w[i]](初始化 dp[0] = 1)。     

(3)二维费用背包:状态增加第二维度费用,需双重逆序遍历,物品同时消耗体积和重量资源。