CF2078B.Vicious Labyrinth

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Axium Crisis - ak+q

迷宫中有 nn 个单元格,其中单元格 ii(1≤i≤n1 \leq i \leq n)距离出口有 n−in - i 公里。特别地,单元格 nn 就是出口。注意每个单元格仅与出口相连,无法从其他任何单元格直接到达。

每个单元格最初恰好困住一个人。你希望通过在每个单元格 ii(1≤i≤n1 \leq i \leq n)安装传送器来帮助所有人尽可能接近出口,该传送器会将单元格 ii 中的人传送到另一个单元格 aia_i。

迷宫主人发现了你的行为。她觉得有趣,但要求你满足以下条件:

  • 每个人都必须恰好使用传送器 kk 次。
  • 任何单元格的传送器都不能将人传送到自身所在的单元格。形式化地说,对所有 1≤i≤n1 \leq i \leq n 有 ai≠ia_i \neq i。

你需要找到一个传送器配置方案,在满足迷宫主人限制条件的前提下,使所有人在使用传送器恰好 kk 次后到出口的距离之和最小。若存在多个可行方案,输出任意一个即可。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

每个测试用例的第一行包含两个整数 nn 和 kk(2≤n≤2⋅1052 \leq n \leq 2 \cdot 10^5,1≤k≤1091 \leq k \leq 10^9)——迷宫中的单元格数量及参数 kk。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,按顺序输出 nn 个整数——传送器的目标单元格 a1,a2,…,ana_1, a_2, \ldots, a_n(需满足 1≤ai≤n1 \leq a_i \leq n 且 ai≠ia_i \neq i)。

输入输出样例

  • 输入#1

    2
    2 1
    3 2

    输出#1

    2 1
    2 3 2

说明/提示

第一个测试用例中,每个人的位置变化如下:

  • 传送前:[1,2][1, 2]
  • 第一次传送后:[2,1][2, 1]

距离之和为 (2−2)+(2−1)=1(2-2) + (2-1) = 1,这是可能的最小值。

第二个测试用例中,每个人的位置变化如下:

  • 传送前:[1,2,3][1, 2, 3]
  • 第一次传送后:[2,3,2][2, 3, 2]
  • 第二次传送后:[3,2,3][3, 2, 3]

距离之和为 (3−3)+(3−2)+(3−3)=1(3-3) + (3-2) + (3-3) = 1,这是可能的最小值。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页