CF2078B Vicious Labyrinth

题目描述

[Axium Crisis - ak+q](https://youtu.be/1HyuI8Bvnsg?si=6amlU5OPKnJiydZs) 迷宫中有 $n$ 个单元格,其中单元格 $i$($1 \leq i \leq n$)距离出口有 $n - i$ 公里。特别地,单元格 $n$ 就是出口。注意每个单元格仅与出口相连,无法从其他任何单元格直接到达。 每个单元格最初恰好困住一个人。你希望通过在每个单元格 $i$($1 \leq i \leq n$)安装传送器来帮助所有人尽可能接近出口,该传送器会将单元格 $i$ 中的人传送到另一个单元格 $a_i$。 迷宫主人发现了你的行为。她觉得有趣,但要求你满足以下条件: - 每个人都必须恰好使用传送器 $k$ 次。 - 任何单元格的传送器都不能将人传送到自身所在的单元格。形式化地说,对所有 $1 \leq i \leq n$ 有 $a_i \neq i$。 你需要找到一个传送器配置方案,在满足迷宫主人限制条件的前提下,使所有人在使用传送器恰好 $k$ 次后到出口的距离之和最小。若存在多个可行方案,输出任意一个即可。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数 $t$($1 \le t \le 10^4$)。接下来描述每个测试用例。 每个测试用例的第一行包含两个整数 $n$ 和 $k$($2 \leq n \leq 2 \cdot 10^5$,$1 \leq k \leq 10^9$)——迷宫中的单元格数量及参数 $k$。 保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,按顺序输出 $n$ 个整数——传送器的目标单元格 $a_1, a_2, \ldots, a_n$(需满足 $1 \leq a_i \leq n$ 且 $a_i \neq i$)。

说明/提示

第一个测试用例中,每个人的位置变化如下: - 传送前:$[1, 2]$ - 第一次传送后:$[2, 1]$ 距离之和为 $(2-2) + (2-1) = 1$,这是可能的最小值。 第二个测试用例中,每个人的位置变化如下: - 传送前:$[1, 2, 3]$ - 第一次传送后:$[2, 3, 2]$ - 第二次传送后:$[3, 2, 3]$ 距离之和为 $(3-3) + (3-2) + (3-3) = 1$,这是可能的最小值。 翻译由 DeepSeek R1 完成