#6970. 封箱验收(inspection)

封箱验收(inspection)

封箱验收(inspection)

题目描述

某物流中心正在进行最终装箱验收。

运输箱的最大承重为 V,共有 n 种货物。

第 i 种货物的重量为 wi,价值为viw_i,价值为 v_i。

仓库的供货规则如下:

  • 重量为奇数的货物,可以选择任意非负整数件。
  • 重量为偶数的货物,最多只能选择一次。

除此之外,验收系统还要求:所有装入货物的总价值必须为奇数。

在总重量不超过 V 的前提下,求能够获得的最大总价值。

如果不存在合法方案,输出 -1。

输入格式

第一行输入两个整数 V,n。

接下来 n 行,每行输入 wi,viw_i,v_i。

输出格式

输出最大总价值,无解输出 -1。

输入样例

10 3
3 5
4 7
5 8

输出样例

17

样例解释

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

总重量为 3+3+4=10。

总价值为 5+5+7=17,是奇数,满足要求。

数据范围

  • 1≤n≤100
  • 1≤V≤2000
  • 1≤wi≤2000
  • 1≤vi≤10000
测试点编号 层级 V n 特殊性质 预期输出 设计目的
1 弱数据 0 空背包、无物品 -1 检查最小容量及不存在奇数总价值的情况
2 5 1 偶重量、奇价值 3 检查偶重量物品只能选择一次
3 奇重量、奇价值 15 检查完全背包重复选择及奇偶状态转移
4 正常数据 10 2 所有物品价值均为偶数 -1 检查无法构成奇数总价值时的输出
5 完全背包与 0/1 背包混合 17 检查两类物品组合及价值奇偶变化
6 所有重量均为偶数 31 防止错误地重复选择偶重量物品
7 综合数据 23 6 多物品、多种奇偶组合 65 覆盖混合转移、容量取舍和多步状态更新
8 极限数据 100000 1 大容量、奇重量物品可无限选 99899001 检查时间性能,并验证最优总价值必须为奇数