luogu#P12091. [RMI 2019] 圣诞老人 / Santa Claus
[RMI 2019] 圣诞老人 / Santa Claus
题目描述
众所周知,在平安夜,圣诞老人的工作是从精灵那里获取礼物,并将它们送给孩子们,为他们的内心带来欢乐与幸福。
城市中有 座房子在笔直的道路上。房子编号从 。
对于每座房子 ,已知:
- : 表示第 座房子沿道路的位置。
- ;
- 。
- 如果 ,则第 座房子中有一个精灵,持有一个价值为 的礼物。
- 如果 ,则第 座房子中有一个孩子,正在等待一个最小价值为 的礼物。
共有 个场景。在第 个场景中,圣诞老人从坐标 进入城市,携带一个空的礼物袋。他首先向右移动,直到到达第 座房子(位于坐标 ),然后向左移动,直到到达某个其他位置 。
- 当圣诞老人经过一个精灵的房子且之前未访问过时,他会拿走礼物并放入袋中。
- 当圣诞老人经过一个尚未收到礼物的孩子的房子时,他可以(但不必须)从袋中挑选一个当前存在的礼物交给孩子,并将该礼物从袋中移除。此操作仅在所选礼物的价值至少等于孩子指定的最小价值 时才能完成。
在第 个场景中,圣诞老人移动的总距离为 。你的任务是:针对每个场景,找到圣诞老人分发所有精灵礼物所需的最小距离 。
- 注意:允许某些孩子未收到礼物,但必须满足所有礼物已被分发,且每个孩子至多收到一个礼物。
- 如果无法满足条件,则设 。特别地,若圣诞老人无法到达所有精灵的房子,则必然无法满足条件。
输入格式
本题单个测试点内有多组测试数据。
第一行输入包含一个整数 (),表示测试数据组数。
随后描述 组数据。每组数据包含四行:
- 第一行,一个整数 ,城市中的房子数量。
- 第二行, 个整数 。
- 第三行, 个整数 。
- 第四行, 个整数 。
输出格式
每组数据,输出一行 个整数:。
2
8
10 11 12 13 14 16 25 35
1 0 0 0 1 1 1 1
2 2 3 3 5 1 1 1
16
10 11 12 13 14 15 16 17 18 19 20 23 24 31 33 37
1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1
2 1 7 3 1 10 10 6 5 5 1 6 1 10 8 2
-1 -1 -1 -1 -1 -1 40 35
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 36 24 31 33 37
2
9
1 2 3 4 15 16 17 18 19
0 0 1 1 1 0 0 1 1
5 7 4 1 2 3 1 6 2
9
1 2 3 4 15 16 17 18 19
0 0 1 1 1 0 0 1 1
5 7 4 1 2 3 1 6 1
-1 -1 -1 -1 -1 -1 -1 32 34
-1 -1 -1 -1 -1 -1 -1 32 23
提示
样例解释
样例 解释
样例 第一组数据中,共有 座房子。第 、 和 座房子中有 个精灵,分别持有价值为 、 和 的礼物。
第 座房子中有一个孩子,期望获得价值为 的礼物。由于圣诞老人无法从任何精灵处获取满足此条件的礼物,该孩子将不会收到礼物。
- 在场景 、 和 中,圣诞老人未访问所有精灵的房子,因此 。
- 在场景 、 和 中,圣诞老人虽访问了精灵,但未找到足够多愿意接受其 份礼物的孩子,因此 。
- 在场景 中,圣诞老人需要返回到第 座房子()以分发全部 份礼物,因此 。
- 在场景 中,圣诞老人完全无需折返()即可分发所有 份礼物,因此 。
数据范围
对于 的数据,保证:
- ;
- ;
- ;
- ;
- ;
- ;
子任务
编号 | 分值 | |
---|---|---|