luogu#P9818. 游戏王

游戏王

题目背景

本题已经增加 hack 数据。hack 数据位于 subtask 7,记 0 分。此外本题时限较大数据点较多,希望各位不要滥用评测资源。

你正在打块,突然家长走了进来,于是你假装在玩原神。

题目描述

你改造了原神的抽卡系统。

具体而言,在第 ii 次抽卡时,系统将会给出一个可重集合 SiS_i,表示这次抽卡中可供选择的角色。第 jj 个角色有两个属性:力量值 si,js_{i,j} 与魔力值 mi,jm_{i,j}。你可以从中选择一名角色,并将其加入到自己的背包中;当然,你也可以不做任何选择。你的力量值被定义为背包中所有角色的力量值之和,同时你需要时刻保证背包中角色的魔力值之积不超过魔力上限 vv。你的任务是最大化自己的力量值。

但是,你很快就厌烦了千篇一律的抽卡。为了给生活找点乐子,你想到了这样的问题:如果游戏从第 ll 次抽卡开始,到第 rr 次抽卡结束,你的力量值最大是多少呢?

你一口气提出了 qq 个这样的问题。现在,你需要计算出它们的答案。

形式化题意

给出一个长为 nn 的序列 {Sn}\{S_n\},其中 SiS_i 为多个二元组 (si,j,mi,j)(s_{i,j},m_{i,j}) 构成的可重集。有 qq 次询问,每次给定 l,rl,r,你需要从 Sl,Sl+1,,SrS_l,S_{l+1},\cdots,S_r 的每个集合中分别选出 00 个或 11 个二元组。记选出的 kk 个二元组为 (si,mi),1ik(s'_i,m'_i),1\le i\le k,则你需要在保证 i=1kmiv\prod_{i=1}^km'_i\le v 的基础上,最大化 i=1ksi\sum_{i=1}^k s'_i

输入格式

输入的第一行包含两个正整数 n,vn,v

接下来 nn 行,每行首先读入 Si|S_i|,接下来读入 Si|S_i| 对正整数 (si,j,mi,j)(s_{i,j},m_{i,j}),即 SiS_i 中每一角色的力量值与魔力值。

随后一行,读入一个正整数 qq

接下来 qq 行,每行两个正整数 l,rl,r,表示一次询问。注意询问间两两独立,即每次询问都将被视作一次新的游戏。

输出格式

输出共 qq 行。对于每次询问,输出你的体力值的最大值。

4 10
2 2 1 5 9
1 5 3
3 2 1 2 1 3 3
1 3 1
5
3 3
2 3
1 4
2 4
3 4
3
8
13
11
6

提示

样例解释

对于第一组询问,最优策略是从 S3S_3 中选择 (3,3)(3,3)。此时你的能力值为 33

对于第三组询问,最优策略是从 S1S_1 中选择 (2,1)(2,1)S2S_2 中选择 (5,3)(5,3)S3S_3 中选择 (3,3)(3,3)S4S_4 中选择 (3,1)(3,1),此时魔力值之积等于 1×3×3×1=9101\times 3\times 3\times 1=9\le 10,你的能力值等于 2+5+3+3=132+5+3+3=13

数据范围与约定

本题使用子任务捆绑测试,只有通过子任务内全部测试点才可以获得该子任务的相应分数

tot=i=1nSitot=\sum_{i=1}^n|S_i|

  • 子任务 1(5 分):保证 n,tot10n,tot\le 10
  • 子任务 2(20 分):保证 n,v,tot,q100n,v,tot,q\le 100
  • 子任务 3(15 分):保证所有 mi,jm_{i,j} 在范围内均匀随机生成。
  • 子任务 4(20 分):保证 1n,v,tot,q1041\le n,v,tot,q\le 10^4
  • 子任务 5(15 分):保证对于所有询问,均有 l=1l=1 或者 r=nr=n
  • 子任务 6(25 分):无特殊限制。

对于所有数据,保证 1n,tot1051\le n,tot\le 10^51q2×1051\le q\le 2\times 10^51mi,jv1051\le m_{i,j}\le v\le 10^51si,j1041\le s_{i,j}\le 10^41lrn1\le l\le r\le n