loj#P6872. 「THUPC 2023 初赛」背包

「THUPC 2023 初赛」背包

题目描述

本题中,你需要解决完全背包问题。

nn 种物品,第 ii 种物品单个体积为 viv_i、价值为 cic_i

qq 次询问,每次给出背包的容积 VV,你需要选择若干个物品,每种物品可以选择任意多个(也可以不选),在选出物品的体积的和恰好VV 的前提下最大化选出物品的价值的和。你需要给出这个最大的价值和,或报告不存在体积和恰好为 VV 的方案。

为了体现你解决 NP-Hard 问题的能力,VV 会远大于 viv_i,详见数据范围部分。

输入格式

第一行两个整数 n,qn,q,表示物品种数和询问次数。

接下来 nn 行每行两个整数 vi,civ_i,c_i 描述一种物品。

接下来 qq 行每行一个整数 VV 描述一次询问中背包的体积。

输出格式

对于每组询问输出一行一个整数。若不存在体积和恰好为 VV 的方案,输出 -1;否则输出最大的选出物品的价值和。

2 2
6 10
8 15
100000000001
100000000002

-1
187500000000

数据范围与提示

对于所有测试数据,$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}$。