#A0003. 三角洲部队物资分配问题
三角洲部队物资分配问题
三角洲部队物资分配问题
题目背景
三角洲部队完成了一次突击任务,缴获了 N 箱物资。每箱物资有一个价值和一个重量。部队需要将这些物资装进直升机运走,但直升机的最大载重有限。
队长决定:选择若干箱物资,使得在总重量不超过直升机载重的前提下,总价值尽可能大。
但在三角洲部队有个传统:如果选择了第 i 箱物资,那么第 i-1 箱和第 i+1 箱物资不能同时被选择(相邻物资不能同时装,防止重心不稳)。
题目描述
给定 N 箱物资,每箱物资有两个属性:
- 价值
v[i] - 重量
w[i]
以及直升机的最大载重 W。
请计算在满足以下条件时的最大总价值:
- 总重量 ≤ W
- 任意两箱被选中的物资不能相邻(即不能同时选择 i 和 i+1)
输入格式
第一行包含两个整数 N 和 W,分别表示物资数量和直升机最大载重。
第二行包含 N 个整数,表示每箱物资的价值 v[1], v[2], ..., v[N]。
第三行包含 N 个整数,表示每箱物资的重量 w[1], w[2], ..., w[N]。
输出格式
输出一个整数,表示能获得的最大总价值。
样例
样例输入 1
5 10
6 3 5 4 7
3 2 4 3 5
样例输出 1
11
解释:选择第 2 箱(价值3,重量2)和第 4 箱(价值4,重量3),总重量5≤10,价值7?不对。选择第1箱(6,3)和第3箱(5,4)和第5箱(7,5):总重量12>10不行。选择第1箱(6,3)和第4箱(4,3):价值10,重量6≤10。选择第2箱(3,2)和第4箱(4,3)和第?第5箱不能选因为相邻,选择第2箱和第4箱价值7。选择第1箱和第3箱和第5箱重量12>10。最优是选择第2箱(3,2)和第5箱(7,5)?不相邻(2和5不相邻),价值10,重量7。或者第1箱(6,3)和第3箱(5,4)总重量7,价值11!且不相邻(1和3不相邻),输出11。
样例输入 2
4 5
10 1 10 1
3 2 3 2
样例输出 2
11
解释:选择第1箱(10,3)和第3箱(10,3),总重量6>5不行。选择第1箱(10,3)和第4箱(1,2),价值11,重量5≤5,不相邻(1和4不相邻),输出11。
数据范围
1 ≤ N ≤ 10001 ≤ W ≤ 100001 ≤ v[i] ≤ 1001 ≤ w[i] ≤ 100
提示
这是一个二维动态规划问题,状态需要同时考虑:
- 当前处理到第几个物资
- 当前总重量是多少
- 上一个物资是否被选择