#P12811. 四角洲行动
四角洲行动
四角洲行动
Problem Description
Kagari 最近沉迷一个叫做四角洲行动的游戏,这游戏里面有一个摸金模式,具体内容就是在游戏地图上寻找各种材料,并放在背包和胸挂等装备的格子里带出。不同材料有不同的大小和价值,同样背包,胸挂,口袋等不同装备也有各自的容量。 当然在这个游戏里面,每个人都希望自己带出去的材料的总价值最大,但由于材料的大小和价值实在太多了,Kagari 实在算不出来带哪些材料才能获得最大的价值。具体的,这个游戏中总共有四种形状大小的格子:,同样,材料的形状也是这四种。材料的放置有如下要求: 材料两维的大小不能超过放入的格子的两维大小; 不能拆分改变材料的形状,但可以旋转,即交换材料的两维大小; 可以将多个材料放入同一个格子,但材料之间不能重叠; 格子不需要装满。 例如,一个 的材料和两个 的材料就可以一起放入一个 的格子,但此时这个格子不能放入更多的材料了。又例如一个 的材料不能放入 大小的格子内,两个 的材料可以放入一个 的格子,并且此时还可以再放入一个 的材料,但不能放入其他大小的材料 。 现在 Kagari 已经统计好了她身上装备的各种格子的数量,以及已经捡到的所有材料的大小和价值,她希望写一个程序来计算能带出最大的价值。但由于 Kagari 是 2025 年 9 月才入学的新生,她还不会写代码,所以她希望你来帮忙。
Input
首先一个正整数 ,表示数据组数。 对于每组数据,第一行四个非负整数 (),分别表示大小为 的格子数量。 接下来四行,按照大小为 的顺序描述每种材料,第 行首先一个非负整数 (),表示这种大小的材料数量,接下来 个正整数 ()分别表示每个材料的价值。 保证所有数据的 之和, 之和, 之和, 之和都不超过 ,所有数据的 之和, 之和, 之和, 之和都不超过 。
Output
对于每组数据,输出一行一个非负整数,表示能带出的最大价值。
Sample Input
3
1 2 1 0
1 3
1 10
1 6
0
3 0 2 0
9 2 9 10 3 1 1 2 10 7
3 14 10 14
1 21
0
0 1 2 0
2 10 6
1 2
3 24 27 9
2 8 16
Sample Output
19
71
67
Source
2025“钉耙编程”中国大学生算法设计暑期联赛(5)