P15912 [TOPC 2024] Harmonious Passage of Magicians
题目描述
有一条非常狭窄的巷子,两队魔法师想从巷子的两端穿过。他们只有在两队之间只剩下一个空格时,才会看到对方。由于巷子太窄,他们无法转身或后退来避免相撞。然而,作为魔法师,他们可以使用魔法进行短距离传送,从而越过另一个人。此外,为了保持秩序,同一队的魔法师不能改变他们之间的相对顺序,因此他们不能使用这个魔法来越过自己队伍的魔法师。
为了更清晰地说明,我们假设第一队有 $n$ 名魔法师,从左侧开始,编号为 $1$ 到 $n$;第二队有 $m$ 名魔法师,从右侧开始,编号为 $n+1$ 到 $n+m$。
这条狭窄的巷子共有 $n + m + 1$ 个空格。最左边的 $n$ 个空格被第一队占据,面朝右;最右边的 $m$ 个空格被第二队占据,面朝左。巷子的初始布局如下:$[1, 2, \dots, n, \text{空格}, n+1, n+2, \dots, n+m]$。
当一名魔法师移动时,必须遵守以下规则:
- 如果他正前方有一个空格,他可以走入该空格。
- 如果他正前方有一名对方队伍的魔法师,且该魔法师的正后方有一个空格,他可以使用魔法移动到那个空格。
最终,第一队将占据最右边的 $n$ 个空格,第二队将占据最左边的 $m$ 个空格。
为了帮助他们穿过巷子,请提供一种移动策略。该策略将由一个序列 $a_1, a_2, \dots$ 来描述,其中 $a_i$ 表示在第 $i$ 步中,编号为 $a_i$ 的魔法师将移动到一个空位。
如果存在多种策略,请输出字典序最小的策略。字典序是一种基于字母或数字顺序比较字符串或元素序列的方法。在本问题中,“字典序最小”的策略指的是当策略表示为数字序列时,按数值顺序排在最前面的策略。
更具体地说:
- 每个策略表示为一个数字序列:$a_1, a_2, \dots$
- 两个策略逐元素比较:
- 如果一个策略的第一个元素小于另一个策略的第一个元素,则该策略的字典序更小。
- 如果第一个元素相等,则比较第二个元素,依此类推。
输入格式
第一行包含一个整数 $t$,表示测试用例的数量。接下来的 $t$ 行,每行包含两个整数 $n$ 和 $m$,分别表示第一队魔法师的数量和第二队魔法师的数量。
输出格式
输出 $t$ 行。第 $i$ 行应包含第 $i$ 个测试用例中帮助魔法师穿过狭窄巷子的移动策略。如果存在多种策略,则输出字典序最小的策略。
说明/提示
- $2 \le n \le 3000$
- $2 \le m \le 3000$
- $1 \le t \le 1000$
- 所有测试用例的 $n$ 之和不超过 $3000$
- 所有测试用例的 $m$ 之和不超过 $3000$
翻译由 DeepSeek V3.2 完成