#8178. 「省选联考 2024」迷宫守卫 省选/NOI−

时间限制:1000 ms 内存限制:128 MiB 输入文件:maze.in 输出文件:maze.out
题目类型:传统 评测方式:文本比较
上传者: root

注意

本题采用文件输入输出。

输入文件为 maze.in, 输出文件为maze.out

题目描述

Alice 拥有一座迷宫,这座迷宫可以抽象成一棵拥有 个叶节点的满二叉树,总节点数目为 ,依次编号为 。其中编号为 的是叶节点,编号为 的是非叶节点,且非叶节点 的左儿子编号为 ,右儿子编号为

每个非叶节点都有一个石像守卫,初始时,所有石像守卫均在沉睡。唤醒 点的石像守卫需要 的魔力值。

每个叶节点都有一个符文, 点的符文记作 保证 构成 的排列

探险者初始时持有空序列 ,从节点 出发,按照如下规则行动:

  • 到达叶节点 时,将 点的符文 添加到序列 的末尾,然后返回父节点。
  • 到达非叶节点 时:
    • 若该点的石像守卫已被唤醒,则只能先前往左儿子,(从左儿子返回后)再前往右儿子,(从右儿子返回后)最后返回父节点。
    • 若该点的石像守卫在沉睡,可以在以下二者中任选其一:
      • 先前往左儿子,再前往右儿子,最后返回父节点。
      • 先前往右儿子,再前往左儿子,最后返回父节点。

返回节点 时,探险结束。可以证明,探险者一定访问每个叶节点各一次,故此时 的长度为

探险者 Bob 准备进入迷宫,他希望探险结束时的 的字典序越小越好,与之相对,Alice 希望 的字典序越大越好。

在 Bob 出发之前,Alice 可以选择一些魔力值花费之和不超过 的石像守卫,并唤醒它们。Bob 出发时,他能够知道 Alice 唤醒了哪些神像。若双方都采取最优策略,求序列 的最终取值。

对于两个长度为 的序列 ,称 字典序小于 当且仅当以下条件成立:

  • 满足以下两个条件:

输入格式

从文件 maze.in 中读入数据。

本题有多组测试数据。输入的第一行包含一个正整数 ,表示测试数据组数。

接下来依次 组测试数据。对于每组测试数据:

  • 第一行两个整数 表示迷宫规模和 Alice 可用于唤醒石像守卫的魔力值上限。
  • 第二行 个整数 表示唤醒各个石像守卫耗费的魔力值。
  • 第三行 个整数 表示各个叶节点上的符文。

输出格式

输出到文件 maze.out 中。

对于每组数据,输出一行 个整数 ,表示双方都采取最优策略的情况下,序列 的最终取值。

样例

样例输入 1

3
1 0
1
2 1
1 1
1
2 1
3 3
3 2 1 2 1 2 1
4 2 6 3 7 1 5 8

样例输出 1

1 2
2 1
2 4 6 3 5 8 7 1

数据范围与提示

【样例 1 解释】

  • 第一组数据中,Alice 无法唤醒石像守卫,Bob 可以选择先访问叶节点 ,再访问叶节点 ,得
  • 第二组数据中,Alice 可以唤醒节点 的石像守卫,Bob 只能先访问叶节点 ,再访问叶节点 ,得
  • 第三组数据中,Alice 的最优策略是唤醒节点 的石像守卫。

【样例 2】

见附件中的 maze2.in/ans

该组数据满足特殊性质 A。

【样例 3】

见附件中的 maze3.in/ans

该组数据满足特殊性质 B。

【样例 4】

见附件中的 maze4.in/ans

【样例 5】

见附件中的 maze5.in/ans

【子任务】

表示单个测试点钟所有测试数据的 的和。对于所有测试数据,保证

  • 构成 的排列。
测试点编号 特殊性质
A
B
A
B
A
B

特殊性质 A:

特殊性质 B: