#6965. 物资调配(supply)

物资调配(supply)

物资调配(supply)

题目描述

某物资中心正在准备一批救援物资。

运输箱的最大承重为 V,仓库中共有 n 种物资。第 i 种物资的重量为 wi,价值为viw_i,价值为 v_i。

根据仓库的库存管理规定:

  • 重量为奇数的物资,库存充足,可以选择任意非负整数件。
  • 重量为偶数的物资,库存只有一件,最多只能选择一次。

要求放入运输箱的物资总重量不超过 VV。

请计算能够获得的最大总价值。

输入格式

第一行两个整数 V,n。

接下来 nn 行,每行两个整数 wi,viw_i,v_i。

输出格式

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

输入样例

10 3
3 5
4 9
5 8

输出样例

19

样例解释

可以选择一件重量为 4、价值为 9 的物资,以及两件重量为 3、价值为 5 的物资。

总重量为 4+3+3=10,总价值为 9+5+5=19。

数据范围

  • 1≤n≤1001≤n≤100
  • 1≤V≤2000
  • 1≤wi≤2000
  • 1≤vi≤10000
测试点编号 层级 V n 特殊性质 标准输出 覆盖点与设计目的
1 弱数据 1 1 最小容量、奇数重量 5 检查最小规模及奇数物品可选
2 5 仅有偶数重量,容量有剩余 7 检查偶数物品可选一次,以及不要求恰好装满
3 10 2 奇偶物品混合、恰好装满 15 检查完全背包与 0/1 背包的基本组合
4 正常数据 12 3 多种最优方案并列 22 检查不同组合得到相同最优值时的状态更新
5 7 所有物品重量均超过容量 0 检查无物品可选时是否正确输出零
6 20 高价值偶数物品只能选一次 45 卡住把偶数重量误当完全背包的错误实现
7 31 6 多种奇偶物品竞争、允许剩余容量 65 检查混合状态转移、劣质方案淘汰和非恰好装满
8 50 10 含重量 1、重复选择与大件物品 139 检查密集状态、完全背包多次选择和组合优化
9 极限数据 999 25 中大容量、多物品、奇偶交错 2639 检查较大状态空间及复杂组合,卡贪心策略
10 2004 40 容量达到数组安全上界 6200 检查边界下标、较多物品及最大容量运行情况