#P9140. [THUPC 2023 初赛] 背包
[THUPC 2023 初赛] 背包
题目描述
本题中,你需要解决完全背包问题。
有 种物品,第 种物品单个体积为 、价值为 。
次询问,每次给出背包的容积 ,你需要选择若干个物品,每种物品可以选择任意多个(也可以不选),在选出物品的体积的和恰好为 的前提下最大化选出物品的价值的和。你需要给出这个最大的价值和,或报告不存在体积和恰好为 的方案。
为了体现你解决 NP-Hard 问题的能力, 会远大于 ,详见数据范围部分。
输入格式
第一行两个整数 ,表示物品种数和询问次数。
接下来 行每行两个整数 描述一种物品。
接下来 行每行一个整数 描述一次询问中背包的体积。
输出格式
对于每组询问输出一行一个整数。若不存在体积和恰好为 的方案,输出 -1
;否则输出最大的选出物品的价值和。
2 2
6 10
8 15
100000000001
100000000002
-1
187500000000
提示
样例解释 1
第二组询问的最优方案为:选择 个物品 和 个物品 。
子任务
对于所有测试数据,$1 \le n \le 50, 1 \le v_i \le 10^5, 1 \le c_i \le 10^6, 1 \le q \le 10^5, 10^{11} \le V \le 10^{12}$。
题目来源
来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)初赛。
题解等资源可在 https://github.com/THUSAAC/THUPC2023-Pre 查看。