#P16055. [Oni2022国家队选拔赛]hoata

[Oni2022国家队选拔赛]hoata

题目描述

一个博物馆有一条线性走廊,由 NN 个房间组成,编号为 11NN。第 ii 个房间中有无限多个同种金条,每根金条的价值为 viv_i,重量为 gig_i

KK 个小偷从第 11 个房间进入博物馆。每个小偷背着一个容量为 GG 的背包,初始为空。当一个小偷位于房间 ii 时,他可以偷任意多个该房间的金条放入背包,只要背包中金条总重量不超过 GG。金条一旦被偷,就会一直留在背包中直到离开博物馆。

小偷们一起行动。在第 ii 步,所有小偷从房间 ii 走到房间 i+1i+1,其中房间 N+1N+1 表示博物馆外部。也就是说,经过前 ii 步后,所有小偷都位于房间 i+1i+1

博物馆在每两个相邻房间之间都安装了报警器。报警器 ii 位于房间 ii 与房间 i+1i+1 之间,有一个参数 xix_i。当小偷们经过这扇门时,如果此时存在至少 xi+1x_i+1 个小偷的背包总重量完全相同,报警器就会响,小偷被抓。即使他们还什么都没偷,也可能触发报警。报警器 NN 位于房间 NN 与博物馆外部之间。

小偷们离开博物馆后,总收获定义为所有 KK 个背包中金条价值之和。

给定 TT 个场景。对于每个场景,求在不触发任何报警器的前提下,小偷们能获得的最大总价值;若无论如何都会被抓,则输出 1-1

输入格式

第一行输入一个整数 TT,表示场景数。

接下来依次给出 TT 个场景。每个场景格式如下:

第一行输入三个整数 N,K,GN,K,G

接下来 NN 行,第 ii 行输入三个整数 vi,gi,xiv_i,g_i,x_i,表示房间 ii 的金条价值、重量以及房间 iii+1i+1 之间报警器的参数。

输出格式

输出 TT 行,按输入顺序输出每个场景的答案。

数据范围与约束

  • 1T9001\le T\le 900
  • 1N3001\le N\le 300
  • 1K501\le K\le 50
  • 1G3001\le G\le 300
  • 1vi3001\le v_i\le 300
  • 1gi3001\le g_i\le 300
  • 1xi501\le x_i\le 50
  • 1SN9001\le S_N\le 900,其中 SNS_N 表示所有场景中 NN 的总和。

子任务

子任务 分值 限制
1 11 $N\le 4,K\le 3,G\le 7,S_N\le 12,v_i\le 20,2\le g_i\le 7,x_i\le 3$
2 18 存在一个 jj,使得对所有 iji\ne j,都有 xi=Kx_i=K
3 40 N40,G40,SN120,vi40,gi40N\le 40,G\le 40,S_N\le 120,v_i\le 40,g_i\le 40
4 31 无额外限制

样例

输入

3
2 1 3
10 2 1
9 1 2
2 2 3
10 2 1
9 1 2
2 3 3
10 2 1
9 1 2

输出

27
46
-1

样例解释

共有 33 个场景。

第一个场景

N=2,K=1,G=3N=2,K=1,G=3。房间 11 中金条价值为 1010、重量为 22;房间 22 中金条价值为 99、重量为 11。报警器参数为 x1=1,x2=2x_1=1,x_2=2

只有一个小偷,因此不会触发报警。他最多可以从房间 22 偷三根金条,价值为 2727

第二个场景

与第一个场景相同,但 K=2K=2。如果两个小偷都从房间 22 偷三根金条,总价值为 5454,但他们在经过房间 11 与房间 22 之间的门时会被抓。事实上,即使什么都不偷,两人的背包重量也都为 00,也可能触发报警。

一种最优方案是:第一个小偷从两个房间各偷一根,价值 1919;第二个小偷从房间 22 偷三根,价值 2727。总价值为 4646

第三个场景

与前两个场景类似,但 K=3K=3。三个小偷无法安全通过第一道门,因此答案为 1-1